﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace V82.ОбщиеМодули
{
	public partial class КорректировкаСтоимостиУчетЗатрат
	{
		// Процедура выполняет корректировку стоимости в регистрах УчетЗатрат и УчетЗатратРегл.
		//
		// Параметры:
		//  ДатаНач - дата начала периода корректировки,
		//  ДатаКон -  дата окончания периода корректировки,
		//  РегламентныйДокумент - ссылка на документ, по которому выполняется корректировка,
		//  ОтборПоАналитикеВидовУчета - массив аналитик видов учета, в приделах которых следует проводить корректировку.
		//

		public void КорректировкаСписанияУчетЗатрат(/*ДатаНач, ДатаКон, РегламентныйДокумент,ОтборПоАналитикеВидовУчета = Неопределено, ОперацияРасчетаСебестоимостиВыпуска=Неопределено, МенеджерВременнойТаблицыПредварительнаяОценкаЗатрат = Неопределено*/)
		{
			//МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц();
			//РегистрУчета 			= ПолучитьРегистрПоВидуУчета(РегламентныйДокумент);
			/*//Сформируем структуру параметров для передачи в качестве параметров в процедуры
*/
			//СтруктураПараметров = Новый Структура;
			//СтруктураПараметров.Вставить("Дата",					РегламентныйДокумент.Дата);
			//СтруктураПараметров.Вставить("Ссылка",					РегламентныйДокумент.Ссылка);
			//СтруктураПараметров.Вставить("СтруктураКлючиАналитики",	Новый Структура());
			if(true/*РегламентныйДокумент.ОтражатьВУправленческомУчете*/)
			{
				//ВидОтраженияВУчете 		 = Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете;
				//ПараметрыУчетнойПолитики = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитики(ДатаКон, РегламентныйДокумент.Организация, Ложь);
				if(true/*ЗначениеЗаполнено(ПараметрыУчетнойПолитики)*/)
				{
					//СтруктураПараметров.Вставить("СпособОценкиМПЗ", ПараметрыУчетнойПолитики.СпособОценкиМПЗ);
				}
			}
			//СтруктураПараметров.Вставить("Движения", Новый Структура);
			if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВРегламентированномУчете*/)
			{
				//СтруктураПараметров.Движения.Вставить("Хозрасчетный", РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей());
				//СтруктураПараметров.Движения.Вставить("Налоговый",	  РегистрыБухгалтерии.Налоговый.СоздатьНаборЗаписей());
				//СтруктураПараметров.Движения.Хозрасчетный.Отбор.Регистратор.Установить(РегламентныйДокумент.Ссылка);
				//СтруктураПараметров.Движения.Налоговый.Отбор.Регистратор.Установить(РегламентныйДокумент.Ссылка);
			}
			if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете*/)
			{
				//СтруктураПараметров.Движения.Вставить("ПродажиСебестоимость", РегистрыНакопления.ПродажиСебестоимость.СоздатьНаборЗаписей());
				//СтруктураПараметров.Движения.ПродажиСебестоимость.Отбор.Регистратор.Установить(СтруктураПараметров.Ссылка);
			}
			//СтруктураПараметров.Вставить("ОтладочныйРежим", 				Ложь);
			//СтруктураПараметров.Вставить("МаксимальноеКоличествоИтераций", 	глЗначениеПеременной("МаксимальноеКоличествоИтерацийСЛУ"));
			//СтруктураПараметров.Вставить("СреднееОтклонениеСЛУ", 			Pow(10, -глЗначениеПеременной("СреднееОтклонениеСЛУ")));
			//СтруктураПараметров.Вставить("ГраницаПогрешностиСЛУ", 			глЗначениеПеременной("ГраницаПогрешностиСЛУ"));
			//СтруктураПараметров.Вставить("ВременныеТаблицыДляРешенияСЛУ", 	глЗначениеПеременной("ИспользоватьВременныеТаблицыДляХраненияПромежуточныхРешенийСЛУ"));
			if(true/*СтруктураПараметров.МаксимальноеКоличествоИтераций = 0*/)
			{
				//ОбщегоНазначения.Сообщение("Константа ""Максимальное количество итераций СЛУ"" установлена равной нулю. Корректировка стоимости выполнена не будет");
			}
			/*// Сформируем во временной таблице отбор по АналитикеВидовУчета в соответствии с переданным параметром и организацией
*/
			/*СформироватьВременнуюТаблицуОтборПоАналитикеВидовУчета(
		СтруктураПараметров,
		РегламентныйДокумент,
		ОтборПоАналитикеВидовУчета,
		МенеджерВременныхТаблиц);*/
			/*// Сформируем временную таблицу аналитик вида учета, списание из которых делается по фиксированной стоимости
*/
			//СформироватьВременнуюТаблицуАналитикиВидовУчетаСФиксированнойСтоимостьюСписания(МенеджерВременныхТаблиц);
			/*// Сформируем временную таблицу кодов операций с фиксированной стоимостью 
*/
			//СформироватьВременнуюТаблицуКодовОперацийПоФиксированнойСтоимости(МенеджерВременныхТаблиц);
			/*// Решим СЛУ и определим среднюю цену в каждом состоянии
*/
			if(true/*СтруктураПараметров.ВременныеТаблицыДляРешенияСЛУ*/)
			{
				/*РешениеНайдено = РешитьСЛУРасширеннаяАналитика(
							ДатаНач,
							ДатаКон,
							РегламентныйДокумент,
							РегистрУчета,
							ВидОтраженияВУчете,
							МенеджерВременныхТаблиц,
							СтруктураПараметров,
							ОперацияРасчетаСебестоимостиВыпуска);*/
			}
			if(true/*НЕ РешениеНайдено*/)
			{
			}
			if(true/*СтруктураПараметров.ВременныеТаблицыДляРешенияСЛУ*/)
			{
				/*//Зафиксируем полученное решение в БД для того, чтобы его использовать на последующих итерациях
*/
				/*ЗаписатьПолученноеРешение(
			СтруктураПараметров,	
			ВидОтраженияВУчете, 
			МенеджерВременныхТаблиц,
			ОперацияРасчетаСебестоимостиВыпуска);*/
			}
			/*//Скорректируем движения по состояниям
*/
			/*СформироватьКорректирующиеДвиженияРасширеннаяАналитика(
		ДатаНач,
		ДатаКон,
		СтруктураПараметров,
		РегистрУчета,
		ВидОтраженияВУчете,
		МенеджерВременныхТаблиц);*/
			/*СторноПредварительнойОценкиЗатрат(
		РегламентныйДокумент, 
		ДатаКон, 
		РегистрУчета, 
		МенеджерВременнойТаблицыПредварительнаяОценкаЗатрат);*/
			/*//Распределим оставшиеся в состояниях копейки (результаты ошибок округления)
*/
			if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВРегламентированномУчете*/)
			{
				/*//Для регламентированного учета отдельно распределим копейки по БУ и НУ
*/
				/*РаспределитьСуммыБезКоличества(
			СтруктураПараметров,
			ДатаНач,
			ДатаКон,
			РегламентныйДокумент,
			РегистрУчета,
			Перечисления.ВидыОтраженияВУчете.ОтражатьВБухгалтерскомУчете,
			МенеджерВременныхТаблиц);*/
				/*РаспределитьСуммыБезКоличества(
			СтруктураПараметров,
			ДатаНач,
			ДатаКон,
			РегламентныйДокумент,
			РегистрУчета,
			Перечисления.ВидыОтраженияВУчете.ОтражатьВНалоговомУчете,
			МенеджерВременныхТаблиц);*/
			}
			/*//Если процедура вызвана из документа "КорректировкаСтоимостиСписанияТоваров" сформируем дополнительные движения по результатам списания
*/
			if(true/*ТипЗнч(РегламентныйДокумент) = Тип("ДокументСсылка.КорректировкаСтоимостиСписанияТоваров")*/)
			{
				if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВРегламентированномУчете*/)
				{
					//СформироватьДвиженияПоРезультатамКорректировкиРегл(СтруктураПараметров);
				}
			}
		}
		//КорректировкаСписанияУчетЗатрат()
		/////////////////////////////////////////////////////////////////
		// РЕШЕНИЕ СЛУ
		// Решает систему линейных уравнений методом простых итераций (методом Якоби) с использованием временных таблиц
		//

		public object РешитьСЛУРасширеннаяАналитика(/*ДатаНач, ДатаКон, РегламентныйДокумент, РегистрУчета, ВидОтраженияВУчете, МенеджерВременныхТаблиц, СтруктураПараметров,ОперацияРасчетаСебестоимостиВыпуска*/)
		{
			/*//Сформируем список состояний
*/
			//Запрос = Новый Запрос;
			//Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
			//Запрос.УстановитьПараметр("ДатаНач",	 ДатаНач);
			//Запрос.УстановитьПараметр("ДатаКон",	 ДатаКон);
			//Запрос.УстановитьПараметр("Регистратор", РегламентныйДокумент);
			/*КоличествоУравненийСЛУ = СформироватьВременнуюТаблицуУзлыКорректировкиСтоимостиСписания(
		Запрос,
		РегистрУчета,
		ВидОтраженияВУчете,
		СтруктураПараметров,
		ОперацияРасчетаСебестоимостиВыпуска);*/
			if(true/*КоличествоУравненийСЛУ = 0*/)
			{
			}
			//МаксимальноеКоличествоИтераций = СтруктураПараметров.МаксимальноеКоличествоИтераций;
			//ТребуемаяТочность = СтруктураПараметров.СреднееОтклонениеСЛУ;
			//Запрос.УстановитьПараметр("ВидДвижения",ВидДвиженияНакопления.Расход);
			//ТекущееОтклонение = КоличествоУравненийСЛУ;
			//КоличествоИтераций = 0;
			/*//Подготовим таблицу перемещений и списаний за отчетный период
*/
			/*ТекстЗапроса = "
	|ВЫБРАТЬ
	|	УчетЗатрат.КорАналитикаВидаУчета КАК АналитикаВидаУчета,
	|	УчетЗатрат.КорАналитикаУчетаЗатрат КАК АналитикаУчетаЗатрат,
	|	УчетЗатрат.КорАналитикаУчетаПартий КАК АналитикаУчетаПартий,
	|	УчетЗатрат.КорАналитикаРаспределенияЗатрат КАК АналитикаРаспределенияЗатрат,
	|	УзлыКорректировкиСтоимостиСписания.НомерУзла КАК НомерУзла,
	|	
	|	//ДляРеглУчета СУММА(
	|	//ДляРеглУчета 	ВЫБОР КОГДА УчетЗатрат.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) ТОГДА
	|	//ДляРеглУчета 		УчетЗатрат.КоличествоНУ
	|	//ДляРеглУчета 	ИНАЧЕ
	|	//ДляРеглУчета 		0
	|	//ДляРеглУчета 	КОНЕЦ
	|	//ДляРеглУчета ) КАК КоличествоНУ, 
	|	
	|	//ДляРеглУчета СУММА(ВЫРАЗИТЬ(
	|	//ДляРеглУчета 	ВЫБОР КОГДА УчетЗатрат.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) ТОГДА
	|	//ДляРеглУчета 		УчетЗатрат.СтоимостьНУ
	|	//ДляРеглУчета 	ИНАЧЕ
	|	//ДляРеглУчета 		0
	|	//ДляРеглУчета 	КОНЕЦ
	|	//ДляРеглУчета  КАК ЧИСЛО(23,10))) КАК СтоимостьНУ,
	|	
	|	//ДляРеглУчета СУММА(ВЫРАЗИТЬ(
	|	//ДляРеглУчета 	ВЫБОР КОГДА УчетЗатрат.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) ТОГДА
	|	//ДляРеглУчета 		УчетЗатрат.ПостояннаяРазница
	|	//ДляРеглУчета 	ИНАЧЕ
	|	//ДляРеглУчета 		0
	|	//ДляРеглУчета 	КОНЕЦ
	|	//ДляРеглУчета  КАК ЧИСЛО(23,10))) КАК ПостояннаяРазница,	
	|	
	|	СУММА(
	|		ВЫБОР КОГДА УчетЗатрат.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) ТОГДА
	|			УчетЗатрат.Количество
	|		ИНАЧЕ
	|			0
	|		КОНЕЦ
	|	) КАК Количество, 
	|	СУММА(ВЫРАЗИТЬ(
	|		ВЫБОР КОГДА УчетЗатрат.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) ТОГДА
	|			УчетЗатрат.Стоимость
	|		ИНАЧЕ
	|			0
	|		КОНЕЦ
	|	КАК ЧИСЛО(23,10))) КАК Стоимость
	|	
	|ПОМЕСТИТЬ УчетЗатрат
	|ИЗ
	|	РегистрНакопления.УчетЗатрат%СуффиксРегл% КАК УчетЗатрат
	|	
	|	ЛЕВОЕ СОЕДИНЕНИЕ 
	|		УзлыКорректировкиСтоимостиСписания КАК УзлыКорректировкиСтоимостиСписания
	|	ПО 
	|		УчетЗатрат.АналитикаВидаУчета = УзлыКорректировкиСтоимостиСписания.АналитикаВидаУчета
	|		И УчетЗатрат.АналитикаУчетаЗатрат = УзлыКорректировкиСтоимостиСписания.АналитикаУчетаЗатрат
	|		И УчетЗатрат.АналитикаУчетаПартий = УзлыКорректировкиСтоимостиСписания.АналитикаУчетаПартий
	|		И УчетЗатрат.АналитикаРаспределенияЗатрат = УзлыКорректировкиСтоимостиСписания.АналитикаРаспределенияЗатрат
	|	
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		КодыОперацийФиксСтоимость КАК КодыОперацийФиксСтоимость
	|	ПО
	|		УчетЗатрат.КодОперации = КодыОперацийФиксСтоимость.КодОперации
	|	
	|ГДЕ
	|	УчетЗатрат.Период МЕЖДУ &ДатаНач И &ДатаКон
	|	И УчетЗатрат.Активность
	|	И УчетЗатрат.АналитикаВидаУчета В (
	|		ВЫБРАТЬ 
	|			Ссылка 
	|		ИЗ 
	|			ОтборПоАналитикеВидовУчета
	|		)
	|	И КодыОперацийФиксСтоимость.КодОперации ЕСТЬ NULL
	|	И (НЕ УзлыКорректировкиСтоимостиСписания.АналитикаВидаУчета В (ВЫБРАТЬ * ИЗ АналитикаВидовУчетаСФиксСтоимостьюСписания))
	|
	|СГРУППИРОВАТЬ ПО
	|	УчетЗатрат.КорАналитикаВидаУчета,
	|	УчетЗатрат.КорАналитикаУчетаЗатрат,
	|	УчетЗатрат.КорАналитикаУчетаПартий,
	|	УчетЗатрат.КорАналитикаРаспределенияЗатрат,
	|	УзлыКорректировкиСтоимостиСписания.НомерУзла
	|
	|ИНДЕКСИРОВАТЬ ПО
	|	АналитикаВидаУчета,
	|	АналитикаУчетаЗатрат,
	|	АналитикаРаспределенияЗатрат,
	|	АналитикаУчетаПартий,
	|	НомерУзла
	|";*/
			//Запрос.Текст = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(ТекстЗапроса, ВидОтраженияВУчете);
			//Запрос.Выполнить();
			/*//Итерационно ищем решение системы линейных уравнений, пока отклонение не будет меньше требуемого или не будет выполнено требуемое количество итераций расчета
*/
			while(true/*(ТекущееОтклонение/КоличествоУравненийСЛУ > ТребуемаяТочность) И (КоличествоИтераций < МаксимальноеКоличествоИтераций)*/)
			{
				//КоличествоИтераций = КоличествоИтераций + 1;
				/*//Следующая итерация расчета
*/
				/*Запрос.Текст = "
		|ВЫБРАТЬ
		|	""РешитьСЛУРасширеннаяАналитика"",
		|	УзлыКорректировкиСтоимостиСписания.НомерУзла КАК НомерУзла,
		|
		|	//ДляРеглУчета	СУММА(ВЫРАЗИТЬ(
		|	//ДляРеглУчета		ВЫБОР КОГДА УзлыКорректировкиСтоимостиСписания.КоличествоНУ <> 0 ТОГДА
		|	//ДляРеглУчета			ТаблицаРешений.ПостояннаяРазница *
		|	//ДляРеглУчета			(ВЫБОР КОГДА ВложенныйЗапрос.КоличествоНУ = 0 ТОГДА 
		|	//ДляРеглУчета				ВложенныйЗапрос.СтоимостьНУ + ВложенныйЗапрос.ПостояннаяРазница
		|	//ДляРеглУчета			ИНАЧЕ 
		|	//ДляРеглУчета				ВложенныйЗапрос.КоличествоНУ 
		|	//ДляРеглУчета			КОНЕЦ) / 
		|	//ДляРеглУчета			УзлыКорректировкиСтоимостиСписания.КоличествоНУ
		|	//ДляРеглУчета		ИНАЧЕ
		|	//ДляРеглУчета			0
		|	//ДляРеглУчета		КОНЕЦ
		|	//ДляРеглУчета	КАК ЧИСЛО(23,10))) КАК ПостояннаяРазница,
		|
		|	//ДляРеглУчета	СУММА(ВЫРАЗИТЬ(
		|	//ДляРеглУчета		ВЫБОР КОГДА УзлыКорректировкиСтоимостиСписания.КоличествоНУ <> 0 ТОГДА
		|	//ДляРеглУчета			ТаблицаРешений.СтоимостьНУ *
		|	//ДляРеглУчета			(ВЫБОР КОГДА ВложенныйЗапрос.КоличествоНУ = 0 ТОГДА 
		|	//ДляРеглУчета				ВложенныйЗапрос.СтоимостьНУ + ВложенныйЗапрос.ПостояннаяРазница 
		|	//ДляРеглУчета			ИНАЧЕ 
		|	//ДляРеглУчета				ВложенныйЗапрос.КоличествоНУ 
		|	//ДляРеглУчета			КОНЕЦ) / 
		|	//ДляРеглУчета			УзлыКорректировкиСтоимостиСписания.КоличествоНУ
		|	//ДляРеглУчета		ИНАЧЕ
		|	//ДляРеглУчета			0
		|	//ДляРеглУчета		КОНЕЦ
		|	//ДляРеглУчета	КАК ЧИСЛО(23,10))) КАК СтоимостьНУ,
		|
		|	СУММА(ВЫРАЗИТЬ(
		|		ВЫБОР КОГДА УзлыКорректировкиСтоимостиСписания.Количество <> 0 ТОГДА
		|			ТаблицаРешений.Стоимость *
		|			(ВЫБОР КОГДА ВложенныйЗапрос.Количество = 0 ТОГДА 
		|				ВложенныйЗапрос.Стоимость 
		|			ИНАЧЕ 
		|				ВложенныйЗапрос.Количество 
		|			КОНЕЦ) / 
		|			УзлыКорректировкиСтоимостиСписания.Количество
		|		ИНАЧЕ
		|			0
		|		КОНЕЦ
		|	КАК ЧИСЛО(23,10))) КАК Стоимость
		|
		|ПОМЕСТИТЬ ВременнаяТаблицаРешений
		|ИЗ
		|	УзлыКорректировкиСтоимостиСписания КАК УзлыКорректировкиСтоимостиСписания
		|
		|	ЛЕВОЕ СОЕДИНЕНИЕ
		|		УчетЗатрат КАК ВложенныйЗапрос
		|		
		|		ЛЕВОЕ СОЕДИНЕНИЕ 
		|			ТаблицаРешений КАК ТаблицаРешений
		|		ПО 
		|			ВложенныйЗапрос.НомерУзла = ТаблицаРешений.НомерУзла
		|
		|	ПО 
		|		УзлыКорректировкиСтоимостиСписания.АналитикаВидаУчета = ВложенныйЗапрос.АналитикаВидаУчета
		|		И УзлыКорректировкиСтоимостиСписания.АналитикаУчетаЗатрат = ВложенныйЗапрос.АналитикаУчетаЗатрат
		|		И УзлыКорректировкиСтоимостиСписания.АналитикаУчетаПартий = ВложенныйЗапрос.АналитикаУчетаПартий
		|		И УзлыКорректировкиСтоимостиСписания.АналитикаРаспределенияЗатрат = ВложенныйЗапрос.АналитикаРаспределенияЗатрат
		|
		|СГРУППИРОВАТЬ ПО
		|	УзлыКорректировкиСтоимостиСписания.НомерУзла
		|
		|ИНДЕКСИРОВАТЬ ПО
		|	НомерУзла
		|";*/
				//Запрос.Текст = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(Запрос.Текст, ВидОтраженияВУчете);
				//Запрос.Выполнить();
				/*Запрос.Текст = "
		|ВЫБРАТЬ
		|	//ДляРеглУчета СУММА(
		|	//ДляРеглУчета 		ВЫБОР КОГДА (ЕСТЬNULL(ТаблицаРешений.ПостояннаяРазница, 0)
		|	//ДляРеглУчета 		- (УзлыКорректировкиСтоимостиСписания.ПостояннаяРазница
		|	//ДляРеглУчета 		+ ЕСТЬNULL(ВременнаяТаблицаРешений.ПостояннаяРазница, 0))) > 0
		|	//ДляРеглУчета 		ТОГДА ЕСТЬNULL(ТаблицаРешений.ПостояннаяРазница, 0)
		|	//ДляРеглУчета 		- (УзлыКорректировкиСтоимостиСписания.ПостояннаяРазница
		|	//ДляРеглУчета 		+ ЕСТЬNULL(ВременнаяТаблицаРешений.ПостояннаяРазница, 0))
		|	//ДляРеглУчета 		ИНАЧЕ -(ЕСТЬNULL(ТаблицаРешений.ПостояннаяРазница, 0)
		|	//ДляРеглУчета 		- (УзлыКорректировкиСтоимостиСписания.ПостояннаяРазница
		|	//ДляРеглУчета 		+ ЕСТЬNULL(ВременнаяТаблицаРешений.ПостояннаяРазница, 0)))
		|	//ДляРеглУчета 		КОНЕЦ
		|	//ДляРеглУчета ) КАК СуммаОтклоненийПР,	
		|
		|	//ДляРеглУчета СУММА(
		|	//ДляРеглУчета 		ВЫБОР КОГДА (ЕСТЬNULL(ТаблицаРешений.СтоимостьНУ,0) 
		|	//ДляРеглУчета 		- (УзлыКорректировкиСтоимостиСписания.СтоимостьНУ 
		|	//ДляРеглУчета 		+ ЕСТЬNULL(ВременнаяТаблицаРешений.СтоимостьНУ,0))) > 0
		|	//ДляРеглУчета 		ТОГДА ЕСТЬNULL(ТаблицаРешений.СтоимостьНУ,0) 
		|	//ДляРеглУчета 		- (УзлыКорректировкиСтоимостиСписания.СтоимостьНУ 
		|	//ДляРеглУчета 		+ ЕСТЬNULL(ВременнаяТаблицаРешений.СтоимостьНУ,0))
		|	//ДляРеглУчета 		ИНАЧЕ -(ЕСТЬNULL(ТаблицаРешений.СтоимостьНУ,0) 
		|	//ДляРеглУчета 		- (УзлыКорректировкиСтоимостиСписания.СтоимостьНУ 
		|	//ДляРеглУчета 		+ ЕСТЬNULL(ВременнаяТаблицаРешений.СтоимостьНУ,0)))
		|	//ДляРеглУчета 		КОНЕЦ
		|	//ДляРеглУчета ) КАК СуммаОтклоненийНУ,	
		|
		|	СУММА(
		|		ВЫБОР КОГДА (ЕСТЬNULL(ТаблицаРешений.Стоимость,0) 
		|		- (УзлыКорректировкиСтоимостиСписания.Стоимость 
		|		+ ЕСТЬNULL(ВременнаяТаблицаРешений.Стоимость,0))) > 0
		|		ТОГДА ЕСТЬNULL(ТаблицаРешений.Стоимость,0) 
		|		- (УзлыКорректировкиСтоимостиСписания.Стоимость 
		|		+ ЕСТЬNULL(ВременнаяТаблицаРешений.Стоимость,0))
		|		ИНАЧЕ -(ЕСТЬNULL(ТаблицаРешений.Стоимость,0) 
		|		- (УзлыКорректировкиСтоимостиСписания.Стоимость 
		|		+ ЕСТЬNULL(ВременнаяТаблицаРешений.Стоимость,0)))
		|		КОНЕЦ
		|	) КАК СуммаОтклонений
		|ИЗ
		|	УзлыКорректировкиСтоимостиСписания КАК УзлыКорректировкиСтоимостиСписания
		|
		|	ЛЕВОЕ СОЕДИНЕНИЕ 
		|		ВременнаяТаблицаРешений КАК ВременнаяТаблицаРешений
		|	ПО 
		|		ВременнаяТаблицаРешений.НомерУзла = УзлыКорректировкиСтоимостиСписания.НомерУзла
		|
		|	ЛЕВОЕ СОЕДИНЕНИЕ 
		|		ТаблицаРешений КАК ТаблицаРешений
		|	ПО 
		|		ТаблицаРешений.НомерУзла = УзлыКорректировкиСтоимостиСписания.НомерУзла
		|";*/
				//Запрос.Текст = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(Запрос.Текст, ВидОтраженияВУчете);
				//Результат = Запрос.Выполнить();
				//СтароеОтклонение = ТекущееОтклонение;
				if(true/*Результат.Пустой()*/)
				{
					//ТекущееОтклонение = 0;
					/*//Отклонений нет
*/
				}
				//Запрос.Текст = "УНИЧТОЖИТЬ ТаблицаРешений";
				//Запрос.Выполнить();
				/*Запрос.Текст = "
		|ВЫБРАТЬ
		|	УзлыКорректировкиСтоимостиСписания.НомерУзла КАК НомерУзла,
		|	//ДляРеглУчета (УзлыКорректировкиСтоимостиСписания.ПостояннаяРазница 
		|	//ДляРеглУчета + ЕСТЬNULL(ВременнаяТаблицаРешений.ПостояннаяРазница, 0)
		|	//ДляРеглУчета ) КАК ПостояннаяРазница,
		|
		|	//ДляРеглУчета (УзлыКорректировкиСтоимостиСписания.СтоимостьНУ 
		|	//ДляРеглУчета + ЕСТЬNULL(ВременнаяТаблицаРешений.СтоимостьНУ, 0)
		|	//ДляРеглУчета ) КАК СтоимостьНУ,
		|
		|	(УзлыКорректировкиСтоимостиСписания.Стоимость 
		|	+ ЕСТЬNULL(ВременнаяТаблицаРешений.Стоимость, 0)
		|	) КАК Стоимость
		|
		|ПОМЕСТИТЬ ТаблицаРешений
		|ИЗ
		|	УзлыКорректировкиСтоимостиСписания КАК УзлыКорректировкиСтоимостиСписания
		|
		|	ЛЕВОЕ СОЕДИНЕНИЕ 
		|		ВременнаяТаблицаРешений КАК ВременнаяТаблицаРешений
		|	ПО 
		|		ВременнаяТаблицаРешений.НомерУзла = УзлыКорректировкиСтоимостиСписания.НомерУзла
		|
		|ИНДЕКСИРОВАТЬ ПО
		|	НомерУзла
		|";*/
				//Запрос.Текст = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(Запрос.Текст, ВидОтраженияВУчете);
				//Запрос.Выполнить();
				//Запрос.Текст = "УНИЧТОЖИТЬ ВременнаяТаблицаРешений";
				//Запрос.Выполнить();
			}
			/*;	
	
	ОбщегоНазначения.Сообщение("Выполненное количество итераций расчета стоимости: " + Строка(КоличествоИтераций));*/
			//ОбщегоНазначения.Сообщение("Полученное среднее отклонение решений: " + Строка(ТекущееОтклонение/КоличествоУравненийСЛУ));
			return null;
		}
		// Решает систему линейных уравнений методом Гаусса-Зейделя без использования временных таблиц
		//

		public object РешитьСЛУБезИспользованияВременныхТаблиц(/*ДатаНач, ДатаКон, РегламентныйДокумент, РегистрУчета, ВидОтраженияВУчете, МенеджерВременныхТаблиц,СтруктураПараметров,ОперацияРасчетаСебестоимостиВыпуска*/)
		{
			/*// Стоимость товара на складе равна стоимости, полученной извне (например, при покупке товара) плюс начальный остаток
*/
			/*// плюс стоимость товара перемещенного с других складов, умноженная на количество перемещенного товара
*/
			/*//
*/
			/*// Это можно представить в виде СЛУ
*/
			/*// K(1) * X(1) = S(1) + K(2) * X(2) + K(3) * X(3) + ... + K(j) * X(j)
*/
			/*// K(2) * X(2) = S(1) + K(1) * X(1) + K(3) * X(3) + ... + K(j) * X(j)
*/
			/*// ...
*/
			/*// K(i) * X(i) = S(i) + K(1) * X(1) + K(2) * X(2) + ... + K(j) * X(j)
*/
			/*//
*/
			/*// где
*/
			/*//	K(i) - количество товара на складе i
*/
			/*//	X(i) - стоимость товара на складе i
*/
			/*//	K(j) - количество перемещенного товара со склада j на склад i
*/
			/*//	X(j) - стоимость товара на складе j
*/
			/*//	S(i) - стоимость товара, полученного извне плюс начальный остаток на складе i
*/
			/*// При решении уравнения используются следующие данные
*/
			/*//  S(i)/K(i) 	- берется средняя стоимость внешних поступлений из регистра УчетЗатрат 
*/
			/*//					(перед расчетом помещается в регистр УзлыКорректировкиСтоимостиСписания)
*/
			/*//  K(i) 		- берется общее количество поступления из регистра УчетЗатрат 
*/
			/*//					(перед расчетом помещается в регистр УзлыКорректировкиСтоимостиСписания)
*/
			/*//	K(j) 		- берутся движения "расход" из регистра УчетЗатрат
*/
			/*//	X(j) 		- берется из решения предыдущей итерации (для первой итерации берется S(i)/K(i))
*/
			//Запрос = Новый Запрос;
			//Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
			//Запрос.УстановитьПараметр("Регистратор", РегламентныйДокумент);
			//Запрос.УстановитьПараметр("ДатаНач",     ДатаНач);
			//Запрос.УстановитьПараметр("ДатаКон",     ДатаКон);
			/*//Сформируем список состояний
*/
			/*КоличествоУравненийСЛУ = СформироватьВременнуюТаблицуУзлыКорректировкиСтоимостиСписания(
		Запрос,
		РегистрУчета,
		ВидОтраженияВУчете,
		СтруктураПараметров,
		ОперацияРасчетаСебестоимостиВыпуска);*/
			if(true/*КоличествоУравненийСЛУ = 0*/)
			{
			}
			//МаксимальноеКоличествоИтераций = СтруктураПараметров.МаксимальноеКоличествоИтераций;
			//ТребуемаяТочность 			   = СтруктураПараметров.СреднееОтклонениеСЛУ;
			/*// Получим S(i)/K(i)
*/
			//ЗаполнитьМассивыСвободныхЧленов(МассивСвободныхЧленов, МассивСвободныхЧленовСтоимостьНУ, МассивСвободныхЧленовПостояннаяРазница, ВидОтраженияВУчете, Запрос);
			//КоличествоУравненийСЛУ = МассивСвободныхЧленов.Количество();
			/*// Выберем начальное приближение X(j)
*/
			//ТекущееРешение = СкопироватьМассив(МассивСвободныхЧленов);
			if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВРегламентированномУчете*/)
			{
				//ТекущееРешениеСтоимостьНУ       = СкопироватьМассив(МассивСвободныхЧленовСтоимостьНУ);
				//ТекущееРешениеПостояннаяРазница = СкопироватьМассив(МассивСвободныхЧленовПостояннаяРазница);
			}
			/*// Получим K(j) для всех уравнений системы
*/
			//МассивСЛУ = ПолучитьСЛУ(ВидОтраженияВУчете, КоличествоУравненийСЛУ, Запрос);
			/*// По умолчанию примем за решение начальное приближение
*/
			//НовоеРешение = СкопироватьМассив(ТекущееРешение);
			if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВРегламентированномУчете*/)
			{
				//НовоеРешениеСтоимостьНУ       = СкопироватьМассив(ТекущееРешениеСтоимостьНУ);
				//НовоеРешениеПостояннаяРазница = СкопироватьМассив(ТекущееРешениеПостояннаяРазница);
			}
			/*// Решим СЛУ методом простых итераций
*/
			//ТекущееОтклонение  = КоличествоУравненийСЛУ;
			//КоличествоИтераций = 0;
			while(true/*(ТекущееОтклонение/КоличествоУравненийСЛУ > ТребуемаяТочность)
	 И (КоличествоИтераций < МаксимальноеКоличествоИтераций)*/)
			{
				//ТекущееОтклонение   = 0;
				//ТекущееОтклонениеПР = 0;
				//ТекущееОтклонениеНУ = 0;
				/*// Получим максимальное отклонение решений СЛУ на данной итерации
*/
				//ТекущееОтклонение = Макс(ТекущееОтклонение, ТекущееОтклонениеПР, ТекущееОтклонениеНУ);
				/*// Запомним решение текущей итерации чтобы использовать его в следующей итерации
*/
				//ТекущееРешение = СкопироватьМассив(НовоеРешение);
				if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВРегламентированномУчете*/)
				{
					//ТекущееРешениеСтоимостьНУ       = СкопироватьМассив(НовоеРешениеСтоимостьНУ);
					//ТекущееРешениеПостояннаяРазница = СкопироватьМассив(НовоеРешениеПостояннаяРазница);
				}
				//КоличествоИтераций = КоличествоИтераций + 1;
			}
			/*;	
	
	ВременнаяТаблицаРешений = Новый ТаблицаЗначений;*/
			//ВременнаяТаблицаРешений.Колонки.Добавить("НомерУзла", 		  Новый ОписаниеТипов("Число"));
			//ВременнаяТаблицаРешений.Колонки.Добавить("ПостояннаяРазница", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(23, 10)));
			//ВременнаяТаблицаРешений.Колонки.Добавить("СтоимостьНУ", 	  Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(23, 10)));
			//ВременнаяТаблицаРешений.Колонки.Добавить("Стоимость", 		  Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(23, 10)));
			//НомерУзла = 1;
			/*Запрос.Текст =
	"ВЫБРАТЬ * ПОМЕСТИТЬ ВременнаяТаблицаРешений ИЗ &ВременнаяТаблицаРешений КАК ВременнаяТаблицаРешений
	|;
	|////////////////////////////////////////////////////////////////////////
	|
	|ВЫБРАТЬ
	|	УзлыКорректировкиСтоимостиСписания.НомерУзла 							КАК НомерУзла,
	|	//ДляРеглУчета ЕСТЬNULL(ВременнаяТаблицаРешений.ПостояннаяРазница, 0) 	КАК ПостояннаяРазница,
	|	//ДляРеглУчета ЕСТЬNULL(ВременнаяТаблицаРешений.СтоимостьНУ, 0) 		КАК СтоимостьНУ,
	|	ЕСТЬNULL(ВременнаяТаблицаРешений.Стоимость, 0) 							КАК Стоимость
	|
	|ПОМЕСТИТЬ ТаблицаРешений
	|ИЗ
	|	УзлыКорректировкиСтоимостиСписания КАК УзлыКорректировкиСтоимостиСписания
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ 
	|		ВременнаяТаблицаРешений КАК ВременнаяТаблицаРешений
	|	ПО 
	|		ВременнаяТаблицаРешений.НомерУзла = УзлыКорректировкиСтоимостиСписания.НомерУзла
	|
	|ИНДЕКСИРОВАТЬ ПО
	|	НомерУзла
	|;
	|////////////////////////////////////////////////////////////////////////
	|
	|УНИЧТОЖИТЬ ВременнаяТаблицаРешений";*/
			//Запрос.УстановитьПараметр("ВременнаяТаблицаРешений", ВременнаяТаблицаРешений);
			//Запрос.Текст = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(Запрос.Текст, ВидОтраженияВУчете);
			//Запрос.Выполнить();
			//ОбщегоНазначения.Сообщение("Выполненное количество итераций расчета стоимости: " + Строка(КоличествоИтераций));
			if(true/*ТекущееОтклонение/КоличествоУравненийСЛУ > ТребуемаяТочность*/)
			{
				/*// точность решения СЛУ меньше требуемой
*/
				/*ОбщегоНазначения.Сообщение(
			"Полученное среднее отклонение решений: " 
			+ Строка(Окр(ТекущееОтклонение/КоличествоУравненийСЛУ, глЗначениеПеременной("СреднееОтклонениеСЛУ"))));*/
			}
			return null;
		}

		public object ПолучитьСЛУ(/*ВидОтраженияВУчете, КоличествоУравнений, Запрос*/)
		{
			//МассивСЛУ = Новый Массив(КоличествоУравнений);
			//Запрос.УстановитьПараметр("ВидДвижения", ВидДвиженияНакопления.Расход);
			/*//Подготовим таблицу перемещений и списаний за отчетный период
*/
			/*ТекстЗапроса =
	"ВЫБРАТЬ
	|	УзлыКорректировкиСтоимостиСписания.НомерУзла-1    КАК НомерУзла,
	|	КорУзлыКорректировкиСтоимостиСписания.НомерУзла-1 КАК КорНомерУзла,
	|	
	|	МАКСИМУМ(КорУзлыКорректировкиСтоимостиСписания.Количество) 					  КАК УзелКоличество,
	|	//ДляРеглУчета МАКСИМУМ(КорУзлыКорректировкиСтоимостиСписания.КоличествоНУ)   КАК УзелКоличествоНУ,
	|
	|	//ДляРеглУчета СУММА(УчетЗатрат.КоличествоНУ) 								  КАК КоличествоНУ, 
	|	//ДляРеглУчета СУММА(ВЫРАЗИТЬ(УчетЗатрат.СтоимостьНУ КАК ЧИСЛО(23,10))) 	  КАК СтоимостьНУ,
	|	//ДляРеглУчета СУММА(ВЫРАЗИТЬ(УчетЗатрат.ПостояннаяРазница КАК ЧИСЛО(23,10))) КАК ПостояннаяРазница,
	|	
	|	СУММА(УчетЗатрат.Количество) 						   						  КАК Количество, 
	|	СУММА(ВЫРАЗИТЬ(УчетЗатрат.Стоимость КАК ЧИСЛО(23,10))) 						  КАК Стоимость
	|	
	|ИЗ
	|	РегистрНакопления.УчетЗатрат%СуффиксРегл% КАК УчетЗатрат
	|	
	|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ 
	|		ОтборПоАналитикеВидовУчета КАК ОтборПоАналитикеВидовУчета
	|	ПО 
	|		УчетЗатрат.АналитикаВидаУчета = ОтборПоАналитикеВидовУчета.Ссылка
	|
	|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ 
	|		УзлыКорректировкиСтоимостиСписания КАК УзлыКорректировкиСтоимостиСписания
	|	ПО 
	|		УчетЗатрат.АналитикаВидаУчета 				= УзлыКорректировкиСтоимостиСписания.АналитикаВидаУчета
	|		И УчетЗатрат.АналитикаУчетаЗатрат 			= УзлыКорректировкиСтоимостиСписания.АналитикаУчетаЗатрат
	|		И УчетЗатрат.АналитикаУчетаПартий 			= УзлыКорректировкиСтоимостиСписания.АналитикаУчетаПартий
	|		И УчетЗатрат.АналитикаРаспределенияЗатрат 	= УзлыКорректировкиСтоимостиСписания.АналитикаРаспределенияЗатрат
	|
	|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ 
	|		УзлыКорректировкиСтоимостиСписания КАК КорУзлыКорректировкиСтоимостиСписания
	|	ПО 
	|		УчетЗатрат.КорАналитикаВидаУчета 				  = КорУзлыКорректировкиСтоимостиСписания.АналитикаВидаУчета
	|		И УчетЗатрат.КорАналитикаУчетаЗатрат 			  = КорУзлыКорректировкиСтоимостиСписания.АналитикаУчетаЗатрат
	|		И УчетЗатрат.КорАналитикаУчетаПартий 			  = КорУзлыКорректировкиСтоимостиСписания.АналитикаУчетаПартий
	|		И УчетЗатрат.КорАналитикаРаспределенияЗатрат 	  = КорУзлыКорректировкиСтоимостиСписания.АналитикаРаспределенияЗатрат
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		АналитикаВидовУчетаСФиксСтоимостьюСписания КАК АналитикаВидовУчетаСФиксСтоимостьюСписания
	|	ПО
	|		УчетЗатрат.АналитикаВидаУчета = АналитикаВидовУчетаСФиксСтоимостьюСписания.Ссылка
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		КодыОперацийФиксСтоимость КАК КодыОперацийФиксСтоимость
	|	ПО
	|		УчетЗатрат.КодОперации = КодыОперацийФиксСтоимость.КодОперации
	|
	|ГДЕ
	|	УчетЗатрат.Период МЕЖДУ &ДатаНач И &ДатаКон
	|	И УчетЗатрат.Активность
	|	И УчетЗатрат.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
	|	И КодыОперацийФиксСтоимость.КодОперации ЕСТЬ NULL
	|	И АналитикаВидовУчетаСФиксСтоимостьюСписания.Ссылка ЕСТЬ NULL
	|
	|СГРУППИРОВАТЬ ПО
	|	УзлыКорректировкиСтоимостиСписания.НомерУзла,
	|	КорУзлыКорректировкиСтоимостиСписания.НомерУзла
	|";*/
			//Запрос.Текст = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(ТекстЗапроса, ВидОтраженияВУчете);
			//Результат = Запрос.Выполнить().Выгрузить();
			return null;
		}

		public void ЗаполнитьМассивыСвободныхЧленов(/*МассивСвободныхЧленов, МассивСвободныхЧленовСтоимостьНУ, МассивСвободныхЧленовПостояннаяРазница, ВидОтраженияВУчете, Запрос*/)
		{
			/*ТекстЗапроса =
	"ВЫБРАТЬ
	|	УзлыКорректировкиСтоимостиСписания.НомерУзла КАК НомерУзла,
	|	//ДляРеглУчета УзлыКорректировкиСтоимостиСписания.СтоимостьНУ КАК СтоимостьНУ,
	|	//ДляРеглУчета УзлыКорректировкиСтоимостиСписания.ПостояннаяРазница КАК ПостояннаяРазница,
	|	УзлыКорректировкиСтоимостиСписания.Стоимость
	|ИЗ
	|	УзлыКорректировкиСтоимостиСписания КАК УзлыКорректировкиСтоимостиСписания
	|	
	|УПОРЯДОЧИТЬ ПО
	|	НомерУзла";*/
			//Запрос.Текст = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(ТекстЗапроса, ВидОтраженияВУчете);
			//Результат = Запрос.Выполнить().Выгрузить();
			//МассивСвободныхЧленов = Результат.ВыгрузитьКолонку("Стоимость");
			if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВРегламентированномУчете*/)
			{
				//МассивСвободныхЧленовСтоимостьНУ       = Результат.ВыгрузитьКолонку("СтоимостьНУ");
				//МассивСвободныхЧленовПостояннаяРазница = Результат.ВыгрузитьКолонку("ПостояннаяРазница");
			}
		}
		////////////////////////////////////////////////////////////////
		// РАСПРЕДЕЛЕНИЕ СУММ БЕЗ КОЛИЧЕСТВ
		// Процедура распределения зависших сумм без количества (ошибки округления при решении СЛУ).
		//

		public void РаспределитьСуммыБезКоличества(/*
				СтруктураШапкиДокумента, ДатаНач, ДатаКон,
				РегламентныйДокумент, РегистрУчета,
				ВидОтраженияВУчете, МенеджерВременныхТаблиц*/)
		{
			if(true/*СтруктураШапкиДокумента.ГраницаПогрешностиСЛУ = 0*/)
			{
				/*// В настройках программы отключено распределение сумм без количества
*/
			}
			//НаборЗаписей = РегистрыНакопления[РегистрУчета].СоздатьНаборЗаписей();
			//НаборЗаписей.Отбор.Регистратор.Установить(РегламентныйДокумент);
			//МассивКодовОперацийСписания = ПолучитьМассивКодовОперацийВнешнегоСписания();
			//ГраницаДатаНач 				= Новый Граница(ДатаНач,ВидГраницы.Включая);
			//ГраницаДатаКон 				= Новый Граница(ДатаКон,ВидГраницы.Включая);
			//Запрос = Новый Запрос;
			//Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
			//Запрос.УстановитьПараметр("ДатаНач",					ДатаНач);
			//Запрос.УстановитьПараметр("ДатаКон",					ДатаКон);
			//Запрос.УстановитьПараметр("ГраницаДатаНач",				ГраницаДатаНач);
			//Запрос.УстановитьПараметр("ГраницаДатаКон",				ГраницаДатаКон);
			//Запрос.УстановитьПараметр("Регистратор",				РегламентныйДокумент);
			//Запрос.УстановитьПараметр("ГраницаПогрешностиСЛУ",		СтруктураШапкиДокумента.ГраницаПогрешностиСЛУ);
			/*// Структура пакетного запроса:
*/
			/*// 0 - ВТ УчетЗатратДвиженияРасход: движения регистра учета затрат
*/
			/*// 1 - ВТ УчетЗатратОстатки: остатки регистра учета затрат
*/
			/*// 2 - ВТ УчетЗатратОбороты: обороты регистра учета затрат (состояния с оборотами по количеству)
*/
			/*// 3 - узлы с зависшими копейками
*/
			/*// 4 - узлы, на которые можно переносить зависшие копейки
*/
			/*// 5 - переходы между узлами
*/
			/*// 6,7 - уничтожение ВТ УчетЗатратОстатки и УчетЗатратОбороты
*/
			/*ТекстЗапроса =
	"ВЫБРАТЬ
	|	УчетЗатрат.АналитикаВидаУчета КАК АналитикаВидаУчета,
	|	УчетЗатрат.АналитикаУчетаЗатрат КАК АналитикаУчетаЗатрат,
	|	УчетЗатрат.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
	|	УчетЗатрат.АналитикаРаспределенияЗатрат КАК АналитикаРаспределенияЗатрат,
	|	УчетЗатрат.КодОперации КАК КодОперации,
	|	УзлыКорректировкиСтоимостиСписания.НомерУзла КАК НомерУзла,
	|
	|	УчетЗатрат.КорАналитикаВидаУчета КАК КорАналитикаВидаУчета,
	|	УчетЗатрат.КорАналитикаУчетаЗатрат КАК КорАналитикаУчетаЗатрат,
	|	УчетЗатрат.КорАналитикаУчетаПартий КАК КорАналитикаУчетаПартий,
	|	УчетЗатрат.КорАналитикаРаспределенияЗатрат КАК КорАналитикаРаспределенияЗатрат,
	|	ЕСТЬNULL(УзлыКорректировкиСтоимостиСписанияПолучатель.НомерУзла, 0) КАК КорНомерУзла,
	|
	|	//ДляУпрУчета СУММА(УчетЗатрат.Стоимость) КАК Стоимость
	|	//ДляБухУчета СУММА(УчетЗатрат.Стоимость) КАК Стоимость
	|	//ДляНалУчета СУММА(УчетЗатрат.СтоимостьНУ) КАК СтоимостьНУ,
	|	//ДляНалУчета СУММА(УчетЗатрат.ПостояннаяРазница) КАК ПостояннаяРазница
	|
	|ПОМЕСТИТЬ УчетЗатратДвиженияРасход
	|ИЗ
	|	РегистрНакопления.УчетЗатрат%СуффиксРегл% КАК УчетЗатрат
	|
	|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ 
	|		ОтборПоАналитикеВидовУчета КАК ОтборПоАналитикеВидовУчета
	|	ПО 
	|		УчетЗатрат.АналитикаВидаУчета = ОтборПоАналитикеВидовУчета.Ссылка
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		УзлыКорректировкиСтоимостиСписания КАК УзлыКорректировкиСтоимостиСписания
	|	ПО 
	|		УзлыКорректировкиСтоимостиСписания.АналитикаВидаУчета 			  = УчетЗатрат.АналитикаВидаУчета
	|		И УзлыКорректировкиСтоимостиСписания.АналитикаУчетаЗатрат 		  = УчетЗатрат.АналитикаУчетаЗатрат
	|		И УзлыКорректировкиСтоимостиСписания.АналитикаУчетаПартий 		  = УчетЗатрат.АналитикаУчетаПартий
	|		И УзлыКорректировкиСтоимостиСписания.АналитикаРаспределенияЗатрат = УчетЗатрат.АналитикаРаспределенияЗатрат
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		УзлыКорректировкиСтоимостиСписания КАК УзлыКорректировкиСтоимостиСписанияПолучатель
	|	ПО
	|		УзлыКорректировкиСтоимостиСписанияПолучатель.АналитикаВидаУчета 			= УчетЗатрат.КорАналитикаВидаУчета
	|		И УзлыКорректировкиСтоимостиСписанияПолучатель.АналитикаУчетаЗатрат 		= УчетЗатрат.КорАналитикаУчетаЗатрат
	|		И УзлыКорректировкиСтоимостиСписанияПолучатель.АналитикаУчетаПартий 		= УчетЗатрат.КорАналитикаУчетаПартий
	|		И УзлыКорректировкиСтоимостиСписанияПолучатель.АналитикаРаспределенияЗатрат = УчетЗатрат.КорАналитикаРаспределенияЗатрат
	|	
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		КодыОперацийФиксСтоимость КАК КодыОперацийФиксСтоимость
	|	ПО
	|		УчетЗатрат.КодОперации = КодыОперацийФиксСтоимость.КодОперации
	|	
	|ГДЕ
	|	УчетЗатрат.Период МЕЖДУ &ДатаНач И &ДатаКон
	|	И УчетЗатрат.Активность
	|	И УчетЗатрат.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
	|	И КодыОперацийФиксСтоимость.КодОперации ЕСТЬ NULL
	|	//ДляБухУчета И УчетЗатрат.КорАналитикаВидаУчета <> Неопределено
	|	//ДляНалУчета И УчетЗатрат.КорАналитикаВидаУчета <> Неопределено
	|
	|СГРУППИРОВАТЬ ПО
	|	УчетЗатрат.АналитикаВидаУчета,
	|	УчетЗатрат.АналитикаУчетаЗатрат,
	|	УчетЗатрат.АналитикаУчетаПартий,
	|	УчетЗатрат.АналитикаРаспределенияЗатрат,
	|	УчетЗатрат.КодОперации,
	|	УзлыКорректировкиСтоимостиСписания.НомерУзла,
	|
	|	УчетЗатрат.КорАналитикаВидаУчета,
	|	УчетЗатрат.КорАналитикаУчетаЗатрат,
	|	УчетЗатрат.КорАналитикаУчетаПартий,
	|	УчетЗатрат.КорАналитикаРаспределенияЗатрат,
	|	ЕСТЬNULL(УзлыКорректировкиСтоимостиСписанияПолучатель.НомерУзла, 0)
	|
	|ИМЕЮЩИЕ
	|	//ДляУпрУчета СУММА(УчетЗатрат.Стоимость) <> 0
	|	//ДляБухУчета СУММА(УчетЗатрат.Стоимость) <> 0
	|	//ДляНалУчета СУММА(УчетЗатрат.СтоимостьНУ) <> 0 ИЛИ СУММА(УчетЗатрат.ПостояннаяРазница) <> 0
	|	
	|ИНДЕКСИРОВАТЬ ПО
	|	НомерУзла,
	|	КорНомерУзла
	|;
	|////////////////////////////////////////////////////////////////////////
	|	
	|ВЫБРАТЬ
	|	УчетЗатратОстатки.АналитикаВидаУчета,
	|	УчетЗатратОстатки.АналитикаУчетаЗатрат,
	|	УчетЗатратОстатки.АналитикаУчетаПартий,
	|	УчетЗатратОстатки.АналитикаРаспределенияЗатрат,
	|
	|	//ДляУпрУчета УчетЗатратОстатки.КоличествоОстаток КАК КоличествоОстаток,
	|	//ДляБухУчета УчетЗатратОстатки.КоличествоОстаток КАК КоличествоОстаток,
	|	//ДляНалУчета УчетЗатратОстатки.КоличествоНУОстаток КАК КоличествоНУОстаток,
	|
	|	//ДляУпрУчета УчетЗатратОстатки.СтоимостьОстаток КАК СтоимостьОстаток
	|	//ДляБухУчета УчетЗатратОстатки.СтоимостьОстаток КАК СтоимостьОстаток
	|	//ДляНалУчета УчетЗатратОстатки.СтоимостьНУОстаток КАК СтоимостьНУОстаток,
	|	//ДляНалУчета УчетЗатратОстатки.ПостояннаяРазницаОстаток КАК ПостояннаяРазницаОстаток
	|
	|ПОМЕСТИТЬ УчетЗатратОстатки
	|ИЗ
	|	РегистрНакопления.УчетЗатрат%СуффиксРегл%.Остатки(
	|		&ГраницаДатаКон,
	|		АналитикаВидаУчета В (ВЫБРАТЬ ОтборПоАналитикеВидовУчета.Ссылка ИЗ ОтборПоАналитикеВидовУчета)
	|	) КАК УчетЗатратОстатки
	|;
	|////////////////////////////////////////////////////////////////////////
	|	
	|ВЫБРАТЬ
	|	УчетЗатратОбороты.АналитикаВидаУчета,
	|	УчетЗатратОбороты.АналитикаУчетаЗатрат,
	|	УчетЗатратОбороты.АналитикаУчетаПартий,
	|	УчетЗатратОбороты.АналитикаРаспределенияЗатрат
	|	
	|ПОМЕСТИТЬ УчетЗатратОбороты
	|ИЗ
	|	РегистрНакопления.УчетЗатрат%СуффиксРегл%.Обороты(
	|		&ГраницаДатаНач,
	|		&ГраницаДатаКон,
	|		,
	|		АналитикаВидаУчета В (ВЫБРАТЬ ОтборПоАналитикеВидовУчета.Ссылка ИЗ ОтборПоАналитикеВидовУчета)
	|	) КАК УчетЗатратОбороты
	|
	|ГДЕ
	|	//ДляУпрУчета УчетЗатратОбороты.КоличествоПриход <> 0 ИЛИ УчетЗатратОбороты.КоличествоРасход <> 0
	|	//ДляБухУчета УчетЗатратОбороты.КоличествоПриход <> 0 ИЛИ УчетЗатратОбороты.КоличествоРасход <> 0
	|	//ДляНалУчета УчетЗатратОбороты.КоличествоНУПриход <> 0 ИЛИ УчетЗатратОбороты.КоличествоНУРасход <> 0
	|;
	|////////////////////////////////////////////////////////////////////////
	|
	|ВЫБРАТЬ
	|	УзлыКорректировкиСтоимостиСписания.НомерУзла КАК НомерУзла,
	|	//ДляУпрУчета ЕСТЬNULL(УчетЗатратОстатки.СтоимостьОстаток,0) КАК Стоимость
	|	//ДляБухУчета ЕСТЬNULL(УчетЗатратОстатки.СтоимостьОстаток,0) КАК Стоимость
	|	//ДляНалУчета ЕСТЬNULL(УчетЗатратОстатки.СтоимостьНУОстаток,0) КАК СтоимостьНУ,
	|	//ДляНалУчета ЕСТЬNULL(УчетЗатратОстатки.ПостояннаяРазницаОстаток,0) КАК ПостояннаяРазница
	|
	|ИЗ
	|	УзлыКорректировкиСтоимостиСписания КАК УзлыКорректировкиСтоимостиСписания
	|
	|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|		УчетЗатратОстатки КАК УчетЗатратОстатки
	|	ПО
	|		УзлыКорректировкиСтоимостиСписания.АналитикаВидаУчета 			  = УчетЗатратОстатки.АналитикаВидаУчета
	|		И УзлыКорректировкиСтоимостиСписания.АналитикаУчетаЗатрат 		  = УчетЗатратОстатки.АналитикаУчетаЗатрат
	|		И УзлыКорректировкиСтоимостиСписания.АналитикаУчетаПартий 		  = УчетЗатратОстатки.АналитикаУчетаПартий
	|		И УзлыКорректировкиСтоимостиСписания.АналитикаРаспределенияЗатрат = УчетЗатратОстатки.АналитикаРаспределенияЗатрат
	|
	|ГДЕ	
	|	//ДляУпрУчета	(УчетЗатратОстатки.КоличествоОстаток = 0)
	|	//ДляБухУчета	(УчетЗатратОстатки.КоличествоОстаток = 0)
	|	//ДляНалУчета	(УчетЗатратОстатки.КоличествоНУОстаток = 0)
	|	И
	|	//ДляУпрУчета ((УчетЗатратОстатки.СтоимостьОстаток МЕЖДУ -&ГраницаПогрешностиСЛУ И &ГраницаПогрешностиСЛУ) И (УчетЗатратОстатки.СтоимостьОстаток <> 0))
	|	//ДляБухУчета ((УчетЗатратОстатки.СтоимостьОстаток МЕЖДУ -&ГраницаПогрешностиСЛУ И &ГраницаПогрешностиСЛУ) И (УчетЗатратОстатки.СтоимостьОстаток <> 0))
	|	//ДляНалУчета (((УчетЗатратОстатки.СтоимостьНУОстаток МЕЖДУ -&ГраницаПогрешностиСЛУ И &ГраницаПогрешностиСЛУ) И (УчетЗатратОстатки.СтоимостьНУОстаток <> 0))
	|	//ДляНалУчета ИЛИ ((УчетЗатратОстатки.ПостояннаяРазницаОстаток МЕЖДУ -&ГраницаПогрешностиСЛУ И &ГраницаПогрешностиСЛУ) И (УчетЗатратОстатки.ПостояннаяРазницаОстаток <> 0)))
	|;
	|////////////////////////////////////////////////////////////////////////
	|
	|ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	УчетЗатратДвиженияРасход.КорНомерУзла КАК НомерУзла,
	|	//ДляУпрУчета ЕСТЬNULL(УчетЗатратОстатки.СтоимостьОстаток,0) КАК Стоимость
	|	//ДляБухУчета ЕСТЬNULL(УчетЗатратОстатки.СтоимостьОстаток,0) КАК Стоимость
	|	//ДляНалУчета ЕСТЬNULL(УчетЗатратОстатки.СтоимостьНУОстаток,0) КАК СтоимостьНУ,
	|	//ДляНалУчета ЕСТЬNULL(УчетЗатратОстатки.ПостояннаяРазницаОстаток,0) КАК ПостояннаяРазница
	|
	|ИЗ 
	|	УчетЗатратДвиженияРасход КАК УчетЗатратДвиженияРасход
	|	
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		УчетЗатратОстатки КАК УчетЗатратОстатки
	|	ПО
	|		УчетЗатратДвиженияРасход.КорАналитикаВидаУчета 				= УчетЗатратОстатки.АналитикаВидаУчета
	|		И УчетЗатратДвиженияРасход.КорАналитикаУчетаЗатрат 			= УчетЗатратОстатки.АналитикаУчетаЗатрат
	|		И УчетЗатратДвиженияРасход.КорАналитикаУчетаПартий 			= УчетЗатратОстатки.АналитикаУчетаПартий
	|		И УчетЗатратДвиженияРасход.КорАналитикаРаспределенияЗатрат 	= УчетЗатратОстатки.АналитикаРаспределенияЗатрат
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		УчетЗатратОбороты КАК УчетЗатратОбороты
	|	ПО
	|		УчетЗатратДвиженияРасход.КорАналитикаВидаУчета 				= УчетЗатратОбороты.АналитикаВидаУчета
	|		И УчетЗатратДвиженияРасход.КорАналитикаУчетаЗатрат 			= УчетЗатратОбороты.АналитикаУчетаЗатрат
	|		И УчетЗатратДвиженияРасход.КорАналитикаУчетаПартий 			= УчетЗатратОбороты.АналитикаУчетаПартий
	|		И УчетЗатратДвиженияРасход.КорАналитикаРаспределенияЗатрат 	= УчетЗатратОбороты.АналитикаРаспределенияЗатрат
	|ГДЕ
	|	УчетЗатратДвиженияРасход.КорНомерУзла = 0
	|	ИЛИ
	|	//ДляУпрУчета	ЕСТЬNULL(УчетЗатратОстатки.КоличествоОстаток,0) <> 0
	|	//ДляБухУчета	ЕСТЬNULL(УчетЗатратОстатки.КоличествоОстаток,0) <> 0
	|	//ДляНалУчета	ЕСТЬNULL(УчетЗатратОстатки.КоличествоНУОстаток,0) <> 0
	|	ИЛИ (
	|	//ДляУпрУчета	ЕСТЬNULL(УчетЗатратОстатки.СтоимостьОстаток,0) <> 0
	|	//ДляУпрУчета	И ЕСТЬNULL(УчетЗатратОстатки.КоличествоОстаток,0) = 0
	|	//ДляБухУчета	ЕСТЬNULL(УчетЗатратОстатки.СтоимостьОстаток,0) <> 0
	|	//ДляБухУчета	И ЕСТЬNULL(УчетЗатратОстатки.КоличествоОстаток,0) = 0
	|	//ДляНалУчета	(ЕСТЬNULL(УчетЗатратОстатки.СтоимостьНУОстаток,0) <> 0 ИЛИ ЕСТЬNULL(УчетЗатратОстатки.ПостояннаяРазницаОстаток,0) <> 0)
	|	//ДляНалУчета	И ЕСТЬNULL(УчетЗатратОстатки.КоличествоНУОстаток,0) = 0
	|					И УчетЗатратОбороты.АналитикаВидаУчета ЕСТЬ NULL
	|		)
	|;
	|////////////////////////////////////////////////////////////////////////
	|
	|ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	УчетЗатратДвиженияРасход.НомерУзла,
	|	УчетЗатратДвиженияРасход.КорНомерУзла
	|ИЗ 
	|	УчетЗатратДвиженияРасход КАК УчетЗатратДвиженияРасход
	|
	|УПОРЯДОЧИТЬ ПО
	|	НомерУзла, КорНомерУзла
	|;
	|////////////////////////////////////////////////////////////////////////
	|УНИЧТОЖИТЬ УчетЗатратОстатки
	|;
	|////////////////////////////////////////////////////////////////////////
	|УНИЧТОЖИТЬ УчетЗатратОбороты";*/
			//Запрос.Текст = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(ТекстЗапроса, ВидОтраженияВУчете);
			//Результат = Запрос.ВыполнитьПакет();
			if(true/*НЕ Результат[3].Пустой() И НЕ Результат[4].Пустой()*/)
			{
				/*// Создадим соответствие, содержащее сведения о переходах между узлами
*/
				/*// Ключ - номер узла
*/
				/*// Значение - массив кор. узлов
*/
				//СоответствиеПереходы = Новый Соответствие;
				//Выборка = Результат[5].Выбрать();
				//ТекущийУзел    = Неопределено;
				//МассивКорУзлов = Новый Массив;
				while(true/*Выборка.Следующий()*/)
				{
					if(true/*ТекущийУзел <> Выборка.НомерУзла*/)
					{
						if(true/*ТекущийУзел <> Неопределено*/)
						{
							//СоответствиеПереходы.Вставить(ТекущийУзел, МассивКорУзлов);
						}
						//ТекущийУзел    = Выборка.НомерУзла;
						//МассивКорУзлов = Новый Массив;
					}
					//МассивКорУзлов.Добавить(Выборка.КорНомерУзла);
				}
				if(true/*ТекущийУзел <> Неопределено*/)
				{
					//СоответствиеПереходы.Вставить(ТекущийУзел, МассивКорУзлов);
				}
				/*// Создадим соответствие, содержащее сведение об узлах с зависшими копейками
*/
				/*// Ключ - номер узла
*/
				/*// Значение - структура, содержащая сведения о суммовых остатках узла
*/
				//СоответствиеУзлыСЗависшимиКопейками = Новый Соответствие;
				//Выборка = Результат[3].Выбрать();
				while(true/*Выборка.Следующий()*/)
				{
					//СтруктураСтоимостей = Новый Структура("Стоимость, СтоимостьНУ, ПостояннаяРазница", 0, 0, 0);
					//ЗаполнитьЗначенияСвойств(СтруктураСтоимостей, Выборка);
					//СоответствиеУзлыСЗависшимиКопейками.Вставить(Выборка.НомерУзла, СтруктураСтоимостей);
				}
				/*// Создадим соответствие, содержащее сведение об узлах, на которые можно выполнить распределение копеек
*/
				/*// Ключ - номер узла
*/
				/*// Значение - структура, содержащая сведения о суммовых остатках узла
*/
				//СоответствиеУзлыДляРаспределения = Новый Соответствие;
				//Выборка = Результат[4].Выбрать();
				while(true/*Выборка.Следующий()*/)
				{
					//СтруктураСтоимостей = Новый Структура("Стоимость, СтоимостьНУ, ПостояннаяРазница", 0, 0, 0);
					//ЗаполнитьЗначенияСвойств(СтруктураСтоимостей, Выборка);
					//СоответствиеУзлыДляРаспределения.Вставить(Выборка.НомерУзла, СтруктураСтоимостей);
				}
				/*;
		
		СтруктураГрафа = Новый Структура;*/
				//СтруктураГрафа.Вставить("СоответствиеПереходы", 				СоответствиеПереходы);
				//СтруктураГрафа.Вставить("СоответствиеУзлыСЗависшимиКопейками", 	СоответствиеУзлыСЗависшимиКопейками);
				//СтруктураГрафа.Вставить("СоответствиеУзлыДляРаспределения", 	СоответствиеУзлыДляРаспределения);
				//СтруктураГрафа.Вставить("ВидОтраженияВУчете", 					ВидОтраженияВУчете);
				//ТаблицаВолновыхМеток = Новый ТаблицаЗначений;
				//ТаблицаВолновыхМеток.Колонки.Добавить("НомерУзла");
				//ТаблицаВолновыхМеток.Колонки.Добавить("НомерПредыдущегоУзла");
				//ТаблицаВолновыхМеток.Колонки.Добавить("ВолноваяМетка");
				//ТаблицаВолновыхМеток.Колонки.Добавить("СтарыйФронт");
				//СтруктураПараметровКорректирующихДвижений = Новый Структура;
				/*// Определим список ресурсов регистра учета затрат, по которым необходимо распределить зависшие копейки
*/
				//РаспределяемыеРесурсы = Новый Массив;
				if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВНалоговомУчете*/)
				{
					//РаспределяемыеРесурсы.Добавить("СтоимостьНУ");
					//РаспределяемыеРесурсы.Добавить("ПостояннаяРазница");
				}
			}
			/*Запрос.Текст =
	"УНИЧТОЖИТЬ УчетЗатратДвиженияРасход";*/
			//Запрос.Выполнить();
			if(true/*НаборЗаписей.Количество() > 0*/)
			{
				//НаборЗаписей.Записать(Ложь);
			}
		}
		// Функция ищет путь в графе исходный список вершин содержится в таблице ТаблицаВолновыхМеток.
		// Критерием окончания поиска являются:
		// - вершина с ненулевым количественным остатком
		// - вершина (состояние), по которой ведется только суммовой учет
		// - внешняя вершина (затраты ушли из подсистемы учета затрат)
		//

		public object НайтиПутьВГрафе(/*МенеджерВременныхТаблиц, ТаблицаВолновыхМеток, СтруктураГрафа, ИмяРесурса, Знач НомерТекущейИтерации*/)
		{
			//ВидОтраженияВУчете 				 = СтруктураГрафа.ВидОтраженияВУчете;
			//СоответствиеПереходы 			 = СтруктураГрафа.СоответствиеПереходы;
			//СоответствиеУзлыДляРаспределения = СтруктураГрафа.СоответствиеУзлыДляРаспределения;
			//ТаблицаНовогоФронта 			 = ТаблицаВолновыхМеток.НайтиСтроки(Новый Структура("СтарыйФронт", Ложь));
			//НомерТекущейИтерации 			 = НомерТекущейИтерации + 1;
			return null;
		}
		// Процедура проходит путь в графе в обратном направлении и формирует движения по регистру УчетЗатрат
		//

		public void СформироватьКорректирующиеДвиженияВГрафе(/*СтруктураПараметров, НомерУзлаДляКорректировки, ИмяРесурса, Знач ВолноваяМетка*/)
		{
			//ТаблицаВолновыхМеток = СтруктураПараметров.ТаблицаВолновыхМеток;
			//СтруктураГрафа 		 = СтруктураПараметров.СтруктураГрафа;
			//СтруктураСтоимостей  = СтруктураПараметров.СтруктураСтоимостей;
			/*// в структуре заполнена только одно свойство с именем ИмяРесурса
*/
			//Запрос = Новый Запрос;
			//Запрос.МенеджерВременныхТаблиц = СтруктураПараметров.МенеджерВременныхТаблиц;
			/*Запрос.Текст =
	"ВЫБРАТЬ ПЕРВЫЕ 1
	|	УчетЗатратДвиженияРасход.АналитикаВидаУчета 			 КАК АналитикаВидаУчета,
	|	УчетЗатратДвиженияРасход.АналитикаУчетаЗатрат 			 КАК АналитикаУчетаЗатрат,
	|	УчетЗатратДвиженияРасход.АналитикаУчетаПартий 			 КАК АналитикаУчетаПартий,
	|	УчетЗатратДвиженияРасход.АналитикаРаспределенияЗатрат 	 КАК АналитикаРаспределенияЗатрат,
	|	УчетЗатратДвиженияРасход.КорАналитикаВидаУчета 			 КАК КорАналитикаВидаУчета,
	|	УчетЗатратДвиженияРасход.КорАналитикаУчетаЗатрат 		 КАК КорАналитикаУчетаЗатрат,
	|	УчетЗатратДвиженияРасход.КорАналитикаУчетаПартий 		 КАК КорАналитикаУчетаПартий,
	|	УчетЗатратДвиженияРасход.КорАналитикаРаспределенияЗатрат КАК КорАналитикаРаспределенияЗатрат,
	|	УчетЗатратДвиженияРасход.КодОперации 					 КАК КодОперации
	|ИЗ
	|	УчетЗатратДвиженияРасход КАК УчетЗатратДвиженияРасход
	|ГДЕ
	|	УчетЗатратДвиженияРасход.НомерУзла = &НомерУзла
	|	И УчетЗатратДвиженияРасход.КорНомерУзла = &КорНомерУзла";*/
			//ТаблицаДвиженийДляКорректировки = ТаблицаВолновыхМеток.НайтиСтроки(Новый Структура("НомерУзла, ВолноваяМетка", НомерУзлаДляКорректировки, ВолноваяМетка));
		}
		////////////////////////////////////////////////////////////////
		// ВСПОМОГАТЕЛЬНЫЕ
		// Возвращает имя регистра соответствующее виду учета документа.
		//
		// Параметры:
		//	РегламентныйДокумент - ДокументСсылка - Регламентный документ
		//
		// Возвращаемое значение:
		//	Строка - Имя регистра
		//

		public object ПолучитьРегистрПоВидуУчета(/*РегламентныйДокумент*/)
		{
			if(true/*РегламентныйДокумент.ОтражатьВУправленческомУчете*/)
			{
			}
			return null;
		}
		// Возвращает массив - копию массива из параметра функции
		//

		public object СкопироватьМассив(/*МассивСвободныхЧленов*/)
		{
			//ТекущееРешение = Новый Массив;
			return null;
		}
		// Функция формирует массив кодов операций внешнего списания затрат.
		//
		// Возвращаемое значение:
		//	Массив - Массив кодов операций
		//

		public object ПолучитьМассивКодовОперацийВнешнегоСписания(/**/)
		{
			//МассивКодовОпераций = Новый Массив;
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийПартииТоваров.Реализация);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийПартииТоваров.ПередачаТарыКонтрагенту);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийПартииТоваров.ВозвратПоставщику);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийПартииТоваров.СписаниеПоИнвентаризации);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийЗатраты.ПрочиеПостоянныеЗатраты);
			return null;
		}
		// ПолучитьМассивКодовОперацийВнешнегоСписания()
		// Функция получения массива кодов операций по списанию затрат.
		//
		// Возвращаемое значение:
		//	Массив - массив кодов операций
		//

		public object ПолучитьМассивКодовОперацийСписаниеЗатрат(/**/)
		{
			//МассивКодовОпераций = Новый Массив;
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийЗатраты.СписаниеОХР_Регламент);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийЗатраты.СписаниеОПР_Регламент);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийЗатраты.СписаниеРасходовНаПродажу);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийЗатраты.ЗакрытиеКосвенныхРасходовНУ);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийЗатраты.ЗакрытиеКосвенныхРасходовНУФикс);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийЗатратыНаВыпускПродукции.ПрямыеЗатраты);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийЗатратыНаВыпускПродукции.ОтрицательныеЗатраты);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийБракВПроизводстве.СписаниеБракВПроизводстве_Регламент);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийНезавершенноеПроизводство.СписаниеНЗПРегламент);
			return null;
		}
		// ПолучитьМассивКодовОперацийСписаниеЗатрат()
		// Функция возвращает пустую таблицу значений для хранения отклонений в стоимости тары
		//
		// Параметры:
		//	нет.
		//
		// Возвращаемое значение:
		//	Таблица значений для хранения отклонений в стоимости тары.
		//

		public object ИнициализироватьТаблицуОтклоненийВСтоимостиТары(/**/)
		{
			//ТаблицаОтклоненийВСтоимости = Новый ТаблицаЗначений;
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("АналитикаВидаУчета");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("АналитикаУчетаЗатрат");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("АналитикаУчетаПартий");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("АналитикаРаспределенияЗатрат");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("КодОперации");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("Стоимость");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("ПостояннаяРазница");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("Количество");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("КоличествоНУ");
			return null;
		}
		// Функция возвращает пустую таблицу значений для хранения отклонений в стоимости товаров
		//
		// Параметры:
		//	нет.
		//
		// Возвращаемое значение:
		//	Таблица значений для хранения отклонений в стоимости товаров.
		//

		public object ИнициализироватьТаблицуОтклоненийВСтоимостиТоваров(/**/)
		{
			//ТаблицаОтклоненийВСтоимости = Новый ТаблицаЗначений;
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("АналитикаВидаУчета");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("АналитикаУчетаЗатрат");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("АналитикаУчетаПартий");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("АналитикаРаспределенияЗатрат");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("КорАналитикаВидаУчета");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("КорАналитикаУчетаЗатрат");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("КорАналитикаУчетаПартий");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("КорАналитикаРаспределенияЗатрат");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("КодОперации");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("Стоимость");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("ПостояннаяРазница");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("Количество");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("КоличествоНУ");
			return null;
		}
		// Процедура формирования временной таблицы "ОтборПоАналитикеВидовУчета".
		//
		// Параметры:
		//	РегламентныйДокумент - ДокументСсылка - Регламентный документ
		//	ОтборПоАналитикеВидовУчета - Массив - Массив ключей аналитики вида учета
		//	МенеджерВременныхТаблиц - МенеджерВременныхТаблиц - Менеджер временных таблиц
		//

		public void СформироватьВременнуюТаблицуОтборПоАналитикеВидовУчета(/*
	СтруктураШапкиДокумента,
	РегламентныйДокумент,
	ОтборПоАналитикеВидовУчета,
	МенеджерВременныхТаблиц*/)
		{
			if(true/*РегламентныйДокумент.ОтражатьВУправленческомУчете*/)
			{
				//СпособВеденияПартионногоУчетаПоОрганизацииДляУУ = УправлениеЗапасами.ПолучитьСпособВеденияПартионногоУчетаПоОрганизации(РегламентныйДокумент.Организация, РегламентныйДокумент.Дата);
				//ОрганизацияДляОтбора = УправлениеЗапасами.ПолучитьОрганизациюВСоответствииСоСпособомВеденияПартионногоУчетаПоОрганизациям(РегламентныйДокумент.Организация, СпособВеденияПартионногоУчетаПоОрганизацииДляУУ);
			}
			//Запрос = Новый Запрос;
			/*Запрос.Текст =
	"ВЫБРАТЬ
	|	АналитикаВидаУчета.Ссылка
	|
	|ПОМЕСТИТЬ ОтборПоАналитикеВидовУчета
	|ИЗ
	|	РегистрСведений.АналитикаВидаУчета КАК АналитикаВидаУчета
	|ГДЕ
	|	АналитикаВидаУчета.Организация = &Организация
	|	//ЕстьУсловиеПоАналитике И АналитикаВидаУчета.Ссылка В (&МассивАналитик)
	|;
	|///////////////////////////////////////////////
	|
	|ВЫБРАТЬ
	|	АналитикаВидаУчета.Ссылка
	|
	|ПОМЕСТИТЬ ОтборПоАналитикеВидовУчетаРазделМПЗ
	|ИЗ
	|	РегистрСведений.АналитикаВидаУчета КАК АналитикаВидаУчета
	|ГДЕ
	|	АналитикаВидаУчета.Организация = &Организация
	|	И АналитикаВидаУчета.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.МПЗ)";*/
			//Запрос.УстановитьПараметр("Организация", ОрганизацияДляОтбора);
			if(true/*НЕ ОтборПоАналитикеВидовУчета = Неопределено*/)
			{
				//Запрос.Текст = СтрЗаменить(Запрос.Текст, "//ЕстьУсловиеПоАналитике", "");
				//Запрос.УстановитьПараметр("МассивАналитик", ОтборПоАналитикеВидовУчета);
			}
			//Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
			//Запрос.Выполнить();
			/*РасширеннаяАналитикаУчета.ПоказатьВременнуюТаблицу(
		СтруктураШапкиДокумента,
		МенеджерВременныхТаблиц,
		"ОтборПоАналитикеВидовУчета");*/
		}
		// СформироватьВременнуюТаблицуОтборПоАналитикеВидовУчета()
		// Процедура формирования временной таблицы "АналитикаВидовУчетаСФиксСтоимостьюСписания".
		// Расходные движения из аналитики содержащейся в этой таблице не корректируются
		//
		// Параметры:
		//	МенеджерВременныхТаблиц - МенеджерВременныхТаблиц - Менеджер временных таблиц
		//

		public void СформироватьВременнуюТаблицуАналитикиВидовУчетаСФиксированнойСтоимостьюСписания(/*МенеджерВременныхТаблиц*/)
		{
			//Запрос = Новый Запрос;
			//Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
			/*//Списание со счета 16 считаем по фиксированной стоимости
*/
			/*Запрос.Текст =
	"ВЫБРАТЬ
	|	АналитикаВидаУчета.Ссылка
	|
	|ПОМЕСТИТЬ АналитикаВидовУчетаСФиксСтоимостьюСписания
	|ИЗ
	|	РегистрСведений.АналитикаВидаУчета КАК АналитикаВидаУчета
	|ГДЕ
	|	АналитикаВидаУчета.СчетУчета В ИЕРАРХИИ(ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОтклонениеВСтоимостиМЦ))";*/
			//Запрос.Выполнить();
		}
		// Процедура формирует временную таблицу кодов операций по фикс. стоимости
		//

		public void СформироватьВременнуюТаблицуКодовОперацийПоФиксированнойСтоимости(/*МенеджерВременныхТаблиц*/)
		{
			//КодыОперацийФиксСтоимость = Новый Массив;
			//КодыОперацийФиксСтоимость.Добавить(Перечисления.КодыОперацийПартииМатериаловВЭксплуатации.ВозвратИзЭксплуатацииФикс);
			//КодыОперацийФиксСтоимость.Добавить(Перечисления.КодыОперацийПартииМатериаловВЭксплуатации.ПеремещениеВЭксплуатацииФикс);
			//КодыОперацийФиксСтоимость.Добавить(Перечисления.КодыОперацийПартииМатериаловВЭксплуатации.СписаниеИзЭксплуатацииФикс);
			//КодыОперацийФиксСтоимость.Добавить(Перечисления.КодыОперацийВыпускПродукции.ВозвратМатериаловИзПроизводстваФикс);
			//КодыОперацийФиксСтоимость.Добавить(Перечисления.КодыОперацийВыпускПродукции.ВыпускПродукцииПоФиксированнойСтоимости);
			//КодыОперацийФиксСтоимость.Добавить(Перечисления.КодыОперацийВыпускПродукции.КорректировкаНЗПФикс);
			//КодыОперацийФиксСтоимость.Добавить(Перечисления.КодыОперацийВыпускПродукции.СписаниеНЗПФикс);
			//КодыОперацийФиксСтоимость.Добавить(Перечисления.КодыОперацийВыпускПродукции.КорректировкаНЗПФикс);
			//КодыОперацийФиксСтоимость.Добавить(Перечисления.КодыОперацийПартииТоваров.ВыпускПродукцииФиксНаСклад);
			//КодыОперацийФиксСтоимость.Добавить(Перечисления.КодыОперацийПартииТоваров.ВозвратПоставщикуФикс);
			//КодыОперацийФиксСтоимость.Добавить(Перечисления.КодыОперацийЗатраты.ПрочиеПостоянныеЗатраты);
			//КодыОперацийФиксСтоимость.Добавить(Перечисления.КодыОперацийЗатраты.ЗакрытиеКосвенныхРасходовНУФикс);
			/*// Сформируем таблицу значений, содержащую коды операций
*/
			//ТаблицаКодовОперацийФиксСтоимость = Новый ТаблицаЗначений;
			/*ТаблицаКодовОперацийФиксСтоимость.Колонки.Добавить("КодОперации", Новый ОписаниеТипов("ПеречислениеСсылка.КодыОперацийПартииМатериаловВЭксплуатации,
		|ПеречислениеСсылка.КодыОперацийВыпускПродукции, ПеречислениеСсылка.КодыОперацийПартииТоваров, ПеречислениеСсылка.КодыОперацийЗатраты,Неопределено"));*/
			/*// Поместим таблицу значений во временную таблицу
*/
			//Запрос = Новый Запрос;
			//Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
			/*Запрос.Текст = 
		"ВЫБРАТЬ
		|	*
		|ПОМЕСТИТЬ КодыОперацийФиксСтоимость
		|ИЗ
		|	&ТаблицаКодовОперацийФиксСтоимость КАК ТаблицаКодовОперацийФиксСтоимость";*/
			//Запрос.УстановитьПараметр("ТаблицаКодовОперацийФиксСтоимость", ТаблицаКодовОперацийФиксСтоимость);
			//Запрос.Выполнить();
		}
		// Процедура готовит данные для списания по ФИФО.
		//
		// Параметры:
		//	Запрос - запрос для формирования узлов
		//	ВидОтраженияВУчете - вид учета, по которому рассчитывается себестоимость
		//

		public void ПодготовитьЗапросДляСписанияПоФИФО(/*Запрос, ВидОтраженияВУчете*/)
		{
			/*// Выполняем запрос из процедуры СформироватьВременнуюТаблицуУзлыКорректировкиСтоимостиСписания()
*/
			/*// при этом его результат помещаем во временную таблицу ТаблицаУзлыКорректировкиСтоимостиСписания
*/
			//Запрос.Текст = СтрЗаменить(Запрос.Текст, "//ДляФИФО", "");
			//Запрос.Выполнить();
			/*// Не нужно обрабатывать механизмом ФИФО остатки по разделу Наработка.
*/
			/*// Но и не будем портить "общий" отбор (временная таблица ОтборПоАналитикеВидовУчета,
*/
			/*// сформирована в процедуре СформироватьВременнуюТаблицуОтборПоАналитикеВидовУчета)
*/
			/*Запрос.Текст =
	"ВЫБРАТЬ
	|	АналитикаВидаУчета.Ссылка
	|
	|ПОМЕСТИТЬ ОтборПоАналитикеВидовУчетаБезНаработки
	|ИЗ
	|	РегистрСведений.АналитикаВидаУчета КАК АналитикаВидаУчета
	|
	|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|		ОтборПоАналитикеВидовУчета КАК ОтборПоАналитикеВидовУчета
	|	ПО
	|		АналитикаВидаУчета.Ссылка = ОтборПоАналитикеВидовУчета.Ссылка
	|		И АналитикаВидаУчета.РазделУчета <> ЗНАЧЕНИЕ(Перечисление.РазделыУчета.Наработка)";*/
			//Запрос.Выполнить();
			/*//Формируем остатки на конец периода, которые будим закрывать по ФИФО	
*/
			/*Запрос.Текст = 
	"ВЫБРАТЬ
	|	УчетЗатратОстатки.АналитикаВидаУчета,
	|	УчетЗатратОстатки.АналитикаУчетаЗатрат,
	|	УчетЗатратОстатки.АналитикаУчетаПартий,
	|	УчетЗатратОстатки.АналитикаРаспределенияЗатрат,
	|	ВЫБОР
	|		КОГДА УчетЗатратОстатки.КоличествоОстаток > 0
	|			ТОГДА УчетЗатратОстатки.КоличествоОстаток
	|		ИНАЧЕ 0
	|	КОНЕЦ КАК КоличествоОстаток, //Количество не распределенного остатка на каждой итерации
	|	//ДляРеглУчета	ВЫБОР
	|	//ДляРеглУчета 		КОГДА УчетЗатратОстатки.КоличествоНУОстаток > 0
	|	//ДляРеглУчета			ТОГДА УчетЗатратОстатки.КоличествоНУОстаток
	|	//ДляРеглУчета		ИНАЧЕ 0
	|	//ДляРеглУчета	КОНЕЦ КАК КоличествоНУОстаток,				   
	|	ВЫБОР
	|		КОГДА УчетЗатратОстатки.КоличествоОстаток > 0
	|			ТОГДА УчетЗатратОстатки.КоличествоОстаток
	|		ИНАЧЕ 0
	|	КОНЕЦ КАК КоличествоОстатокНаКонецПериода, //Количество остаток на конец периода (не зависит от текущей итерации)
	|	//ДляРеглУчета	ВЫБОР
	|	//ДляРеглУчета 		КОГДА УчетЗатратОстатки.КоличествоНУОстаток > 0
	|	//ДляРеглУчета			ТОГДА УчетЗатратОстатки.КоличествоНУОстаток
	|	//ДляРеглУчета		ИНАЧЕ 0
	|	//ДляРеглУчета	КОНЕЦ КАК КоличествоНУОстатокНаКонецПериода,				   
	//Добавляем к дате секунду, чтобы в дальнейшем с ней можно было выполнять сравнения на "<" а не "<="			   
	|	ДОБАВИТЬКДАТЕ(&ДатаКон, СЕКУНДА, 1) КАК Период,
	|	//ДляРеглУчета	0 КАК СтоимостьНУОстаток,
	|	//ДляРеглУчета	0 КАК ПостояннаяРазницаОстаток,
	|	0 КАК СтоимостьОстаток
	|ПОМЕСТИТЬ ТаблицаОстатковПартий
	|ИЗ
	//Временная таблица ОтборПоАналитикеВидовУчета формируется в процедуре СформироватьВременнуюТаблицуОтборПоАналитикеВидовУчета()
	|	РегистрНакопления.УчетЗатрат%СуффиксРегл%.Остатки(
	|		ДОБАВИТЬКДАТЕ(&ДатаКон, СЕКУНДА, 1),
	|		АналитикаВидаУчета В (ВЫБРАТЬ Ссылка ИЗ ОтборПоАналитикеВидовУчетаБезНаработки)) КАК УчетЗатратОстатки
	|;
	|УНИЧТОЖИТЬ ОтборПоАналитикеВидовУчетаБезНаработки;
	//Инициализируем временную таблицу ПериодыПартий			   
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ 1 ПОМЕСТИТЬ ПериодыПартий";*/
			//Запрос.Текст = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(Запрос.Текст, ВидОтраженияВУчете);
			//Запрос.Выполнить();
			/*//Основной запрос вычисляющий сумму, которую нужно зафиксировать в остатке, 
*/
			/*//сумма определяется из расчета что на складе должны остаться последние по времени поступления партии
*/
			/*//Запрос выполняется несколько раз, пока не будет найдена сумма конечного остатка
*/
			/*Запрос.Текст =
	"УНИЧТОЖИТЬ ПериодыПартий
	//Сформируем список периодов (партий) по одному для каждого состояния в которых находятся еще не обработанные поступления с максимальной датой
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	УчетЗатрат.АналитикаВидаУчета,
	|	УчетЗатрат.АналитикаУчетаЗатрат,
	|	УчетЗатрат.АналитикаУчетаПартий,
	|	УчетЗатрат.АналитикаРаспределенияЗатрат,
	|	МАКСИМУМ(НАЧАЛОПЕРИОДА(УчетЗатрат.Период, ДЕНЬ)) КАК Период
	|ПОМЕСТИТЬ ПериодыПартий
	|ИЗ
	|	РегистрНакопления.УчетЗатрат%СуффиксРегл% КАК УчетЗатрат
	|
	|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ 
	|		ОтборПоАналитикеВидовУчета КАК ОтборПоАналитикеВидовУчета
	|	ПО 
	|		УчетЗатрат.АналитикаВидаУчета = ОтборПоАналитикеВидовУчета.Ссылка
	|
	|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|		ТаблицаОстатковПартий КАК ТаблицаОстатковПартий
	|	ПО
	|		ТаблицаОстатковПартий.АналитикаВидаУчета = УчетЗатрат.АналитикаВидаУчета
	|		И ТаблицаОстатковПартий.АналитикаУчетаЗатрат = УчетЗатрат.АналитикаУчетаЗатрат
	|		И ТаблицаОстатковПартий.АналитикаУчетаПартий = УчетЗатрат.АналитикаУчетаПартий
	|		И ТаблицаОстатковПартий.АналитикаРаспределенияЗатрат = УчетЗатрат.АналитикаРаспределенияЗатрат
	|//ДляУпрУчета	И ТаблицаОстатковПартий.КоличествоОстаток <> 0
	|//ДляРеглУчета	И (ТаблицаОстатковПартий.КоличествоОстаток <> 0	ИЛИ ТаблицаОстатковПартий.КоличествоНУОстаток <> 0)
	|
	|ГДЕ
	|	УчетЗатрат.Период МЕЖДУ &ДатаНач И &ДатаКон
	|	И УчетЗатрат.Активность
	|	И УчетЗатрат.КорАналитикаВидаУчета = НЕОПРЕДЕЛЕНО
	// Приходные движения по базе, сформированные при простом распределении, считать внешним поступлением не нужно
	|	И УчетЗатрат.КодОперации <> ЗНАЧЕНИЕ(Перечисление.КодыОперацийЗатраты.РасчетБазыРаспределения)
	|	И УчетЗатрат.ВидДвижения = &ВидДвиженияПриход
	|	И УчетЗатрат.Период < ТаблицаОстатковПартий.Период
	|
	|СГРУППИРОВАТЬ ПО
	|	УчетЗатрат.АналитикаВидаУчета,
	|	УчетЗатрат.АналитикаУчетаЗатрат,
	|	УчетЗатрат.АналитикаУчетаПартий,
	|	УчетЗатрат.АналитикаРаспределенияЗатрат
	//Рассчитаем суммы поступлений для периодов полученных на предыдущем этапе
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ПериодыПартий.АналитикаВидаУчета,
	|	ПериодыПартий.АналитикаУчетаЗатрат,
	|	ПериодыПартий.АналитикаУчетаПартий,
	|	ПериодыПартий.АналитикаРаспределенияЗатрат,
	|	СУММА(УчетЗатрат.Количество) КАК Количество,
	|	СУММА(УчетЗатрат.Стоимость) КАК Стоимость,
	|	//ДляРеглУчета	СУММА(УчетЗатрат.КоличествоНУ) КАК КоличествоНУ,
	|	//ДляРеглУчета	СУММА(УчетЗатрат.СтоимостьНУ) КАК СтоимостьНУ,
	|	//ДляРеглУчета	СУММА(УчетЗатрат.ПостояннаяРазница) КАК ПостояннаяРазница,
	|	ПериодыПартий.Период
	|ПОМЕСТИТЬ ВнешниеПоступленияЗаПериод
	|ИЗ
	|	ПериодыПартий КАК ПериодыПартий
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		РегистрНакопления.УчетЗатрат%СуффиксРегл% КАК УчетЗатрат
	|	ПО
	|		ПериодыПартий.АналитикаВидаУчета = УчетЗатрат.АналитикаВидаУчета
	|		И ПериодыПартий.АналитикаУчетаЗатрат = УчетЗатрат.АналитикаУчетаЗатрат
	|		И ПериодыПартий.АналитикаУчетаПартий = УчетЗатрат.АналитикаУчетаПартий
	|		И ПериодыПартий.АналитикаРаспределенияЗатрат = УчетЗатрат.АналитикаРаспределенияЗатрат
	|		И (УчетЗатрат.Период МЕЖДУ ПериодыПартий.Период И КОНЕЦПЕРИОДА(ПериодыПартий.Период, ДЕНЬ))
	|		И УчетЗатрат.Активность
	|		И УчетЗатрат.КорАналитикаВидаУчета = НЕОПРЕДЕЛЕНО
	|		И УчетЗатрат.ВидДвижения = &ВидДвиженияПриход
	//Без учета сумм. доп. расходов. Они будут распределяться дальше				   
	//Считаем, что внешнее поступление доп. расходов по БУ всегда является внешним поступлением доп. расходов и по НУ
	|		И УчетЗатрат.Количество <> 0
	|
	|СГРУППИРОВАТЬ ПО
	|	ПериодыПартий.АналитикаВидаУчета,
	|	ПериодыПартий.АналитикаУчетаЗатрат,
	|	ПериодыПартий.АналитикаУчетаПартий,
	|	ПериодыПартий.АналитикаРаспределенияЗатрат,
	|	ПериодыПартий.Период
	//Добавляем к накопленной ранее сумме конечного остатка сумму, полученную на текущей итерации		   
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ТаблицаОстатковПартий.АналитикаВидаУчета,
	|	ТаблицаОстатковПартий.АналитикаУчетаЗатрат,
	|	ТаблицаОстатковПартий.АналитикаУчетаПартий,
	|	ТаблицаОстатковПартий.АналитикаРаспределенияЗатрат,
	|	ВЫБОР
	|		КОГДА ТаблицаОстатковПартий.КоличествоОстаток > ЕСТЬNULL(ВнешниеПоступленияЗаПериод.Количество,0)
	|			ТОГДА ТаблицаОстатковПартий.КоличествоОстаток - ЕСТЬNULL(ВнешниеПоступленияЗаПериод.Количество,0)
	|		ИНАЧЕ 0
	|	КОНЕЦ КАК КоличествоОстаток,
	|	//ДляРеглУчета	ВЫБОР
	|	//ДляРеглУчета		КОГДА ТаблицаОстатковПартий.КоличествоНУОстаток > ЕСТЬNULL(ВнешниеПоступленияЗаПериод.КоличествоНУ,0)
	|	//ДляРеглУчета			ТОГДА ТаблицаОстатковПартий.КоличествоНУОстаток - ЕСТЬNULL(ВнешниеПоступленияЗаПериод.КоличествоНУ,0)
	|	//ДляРеглУчета		ИНАЧЕ 0
	|	//ДляРеглУчета	КОНЕЦ КАК КоличествоНУОстаток,
	|	ВЫБОР
	|		КОГДА ТаблицаОстатковПартий.КоличествоОстаток >= ЕСТЬNULL(ВнешниеПоступленияЗаПериод.Количество,0)
	|			ТОГДА ТаблицаОстатковПартий.СтоимостьОстаток + ЕСТЬNULL(ВнешниеПоступленияЗаПериод.Стоимость,0)
	|		ИНАЧЕ ТаблицаОстатковПартий.СтоимостьОстаток + ВнешниеПоступленияЗаПериод.Стоимость * ТаблицаОстатковПартий.КоличествоОстаток / ВнешниеПоступленияЗаПериод.Количество
	|	КОНЕЦ КАК СтоимостьОстаток,
	|	//ДляРеглУчета	ВЫБОР
	|	//ДляРеглУчета		КОГДА ТаблицаОстатковПартий.КоличествоНУОстаток >= ЕСТЬNULL(ВнешниеПоступленияЗаПериод.КоличествоНУ,0)
	|	//ДляРеглУчета			ТОГДА ТаблицаОстатковПартий.СтоимостьНУОстаток + ЕСТЬNULL(ВнешниеПоступленияЗаПериод.СтоимостьНУ,0)
	|	//ДляРеглУчета		ИНАЧЕ ТаблицаОстатковПартий.СтоимостьНУОстаток + ВнешниеПоступленияЗаПериод.СтоимостьНУ * ТаблицаОстатковПартий.КоличествоНУОстаток / ВнешниеПоступленияЗаПериод.КоличествоНУ
	|	//ДляРеглУчета	КОНЕЦ КАК СтоимостьНУОстаток,				   
	|	//ДляРеглУчета	ВЫБОР
	|	//ДляРеглУчета		КОГДА ТаблицаОстатковПартий.КоличествоНУОстаток >= ЕСТЬNULL(ВнешниеПоступленияЗаПериод.КоличествоНУ,0)
	|	//ДляРеглУчета			ТОГДА ТаблицаОстатковПартий.ПостояннаяРазницаОстаток + ЕСТЬNULL(ВнешниеПоступленияЗаПериод.ПостояннаяРазница,0)
	|	//ДляРеглУчета		ИНАЧЕ ТаблицаОстатковПартий.ПостояннаяРазницаОстаток + ВнешниеПоступленияЗаПериод.ПостояннаяРазница * ТаблицаОстатковПартий.КоличествоНУОстаток / ВнешниеПоступленияЗаПериод.КоличествоНУ
	|	//ДляРеглУчета	КОНЕЦ КАК ПостояннаяРазницаОстаток,				   				   
	|	ТаблицаОстатковПартий.КоличествоОстатокНаКонецПериода,
	|	//ДляРеглУчета	ТаблицаОстатковПартий.КоличествоНУОстатокНаКонецПериода,
	|	ВнешниеПоступленияЗаПериод.Период
	|ПОМЕСТИТЬ ТаблицаТекущихОстатковПартий
	|ИЗ
	|	ТаблицаОстатковПартий КАК ТаблицаОстатковПартий
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		ВнешниеПоступленияЗаПериод КАК ВнешниеПоступленияЗаПериод
	|	ПО
	|		ТаблицаОстатковПартий.АналитикаВидаУчета = ВнешниеПоступленияЗаПериод.АналитикаВидаУчета
	|		И ТаблицаОстатковПартий.АналитикаУчетаЗатрат = ВнешниеПоступленияЗаПериод.АналитикаУчетаЗатрат
	|		И ТаблицаОстатковПартий.АналитикаУчетаПартий = ВнешниеПоступленияЗаПериод.АналитикаУчетаПартий
	|		И ТаблицаОстатковПартий.АналитикаРаспределенияЗатрат = ВнешниеПоступленияЗаПериод.АналитикаРаспределенияЗатрат
	|//ДляУпрУчета	И ТаблицаОстатковПартий.КоличествоОстаток <> 0
	|//ДляРеглУчета	И (ТаблицаОстатковПартий.КоличествоОстаток <> 0	ИЛИ ТаблицаОстатковПартий.КоличествоНУОстаток <> 0)
	//Подготавливаем временные таблице к следующей итерации 			   
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|УНИЧТОЖИТЬ ТаблицаОстатковПартий
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|УНИЧТОЖИТЬ ВнешниеПоступленияЗаПериод
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ТаблицаТекущихОстатковПартий.АналитикаВидаУчета,
	|	ТаблицаТекущихОстатковПартий.АналитикаУчетаЗатрат,
	|	ТаблицаТекущихОстатковПартий.АналитикаУчетаПартий,
	|	ТаблицаТекущихОстатковПартий.АналитикаРаспределенияЗатрат,
	|	ТаблицаТекущихОстатковПартий.КоличествоОстаток,
	|	//ДляРеглУчета	ТаблицаТекущихОстатковПартий.КоличествоНУОстаток,
	|	ТаблицаТекущихОстатковПартий.КоличествоОстатокНаКонецПериода,
	|	//ДляРеглУчета	ТаблицаТекущихОстатковПартий.КоличествоНУОстатокНаКонецПериода,
	|	ТаблицаТекущихОстатковПартий.СтоимостьОстаток,
	|	//ДляРеглУчета	ТаблицаТекущихОстатковПартий.СтоимостьНУОстаток,
	|	//ДляРеглУчета	ТаблицаТекущихОстатковПартий.ПостояннаяРазницаОстаток,
	|	ТаблицаТекущихОстатковПартий.Период
	|ПОМЕСТИТЬ ТаблицаОстатковПартий
	|ИЗ
	|	ТаблицаТекущихОстатковПартий КАК ТаблицаТекущихОстатковПартий
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|УНИЧТОЖИТЬ ТаблицаТекущихОстатковПартий
	//Определяем, были ли найдены новые партии за текущую итерацию			   
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ ПЕРВЫЕ 1
	|	1
	|ИЗ
	|	ПериодыПартий КАК ПериодыПартий";*/
			//Запрос.УстановитьПараметр("ВидДвиженияПриход", ВидДвиженияНакопления.Приход);
			//Запрос.Текст = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(Запрос.Текст, ВидОтраженияВУчете);
			/*//Выполняем поиск партий
*/
			//КоличествоИтераций = 0;
			//Результат = Запрос.Выполнить();
			while(true/*НЕ Результат.Пустой()*/)
			{
				//КоличествоИтераций = КоличествоИтераций + 1;
				//Результат = Запрос.Выполнить();
			}
			/*//Определяем сумму доп. расходов, которые должны остаться в остатке. Для этого:
*/
			/*//1. Определяем сумму внешних поступлений доп. расходов за период
*/
			/*Запрос.Текст =
	"ВЫБРАТЬ
	|	УчетЗатрат.АналитикаВидаУчета,
	|	УчетЗатрат.АналитикаУчетаЗатрат,
	|	УчетЗатрат.АналитикаУчетаПартий,
	|	УчетЗатрат.АналитикаРаспределенияЗатрат,
	|	//ДляРеглУчета	СУММА(УчетЗатрат.СтоимостьНУ) КАК СтоимостьНУ,
	|	//ДляРеглУчета	СУММА(УчетЗатрат.ПостояннаяРазница) КАК ПостояннаяРазница,				   
	|	СУММА(УчетЗатрат.Стоимость) КАК Стоимость
	|
	|ПОМЕСТИТЬ ВнешниеПоступленияДопРасходов
	|ИЗ
	|	РегистрНакопления.УчетЗатрат%СуффиксРегл% КАК УчетЗатрат
	|ГДЕ 
	|	УчетЗатрат.Период МЕЖДУ &ДатаНач И &ДатаКон
	|	И УчетЗатрат.Активность
	|	И УчетЗатрат.КорАналитикаВидаУчета = НЕОПРЕДЕЛЕНО
	|	И УчетЗатрат.ВидДвижения = &ВидДвиженияПриход
	|	И УчетЗатрат.Количество = 0
	|
	|СГРУППИРОВАТЬ ПО
	|	УчетЗатрат.АналитикаВидаУчета,
	|	УчетЗатрат.АналитикаУчетаЗатрат,
	|	УчетЗатрат.АналитикаУчетаПартий,
	|	УчетЗатрат.АналитикаРаспределенияЗатрат
	//2. Распределеним полученную сумму доп. расходов между всем поступлением и остатком, пропорционально количеству			   
	|;
	|ВЫБРАТЬ
	|	УчетЗатрат.АналитикаВидаУчета,
	|	УчетЗатрат.АналитикаУчетаЗатрат,
	|	УчетЗатрат.АналитикаУчетаПартий,
	|	УчетЗатрат.АналитикаРаспределенияЗатрат,
	|	//ДляРеглУчета	ВЫБОР КОГДА СУММА(УчетЗатрат.КоличествоНУ) = 0 ТОГДА
	|	//ДляРеглУчета		МАКСИМУМ(ВнешниеПоступленияДопРасходов.СтоимостьНУ)
	|	//ДляРеглУчета	ИНАЧЕ
	|	//ДляРеглУчета		МАКСИМУМ(ВнешниеПоступленияДопРасходов.СтоимостьНУ)*(МАКСИМУМ(ТаблицаОстатковПартий.КоличествоНУОстатокНаКонецПериода)-МАКСИМУМ(ТаблицаОстатковПартий.КоличествоНУОстаток))/СУММА(УчетЗатрат.КоличествоНУ) 
	|	//ДляРеглУчета	КОНЕЦ КАК СтоимостьНУОстаток,
	|	//ДляРеглУчета	ВЫБОР КОГДА СУММА(УчетЗатрат.КоличествоНУ) = 0 ТОГДА
	|	//ДляРеглУчета		МАКСИМУМ(ВнешниеПоступленияДопРасходов.ПостояннаяРазница)
	|	//ДляРеглУчета	ИНАЧЕ
	|	//ДляРеглУчета		МАКСИМУМ(ВнешниеПоступленияДопРасходов.ПостояннаяРазница)*(МАКСИМУМ(ТаблицаОстатковПартий.КоличествоНУОстатокНаКонецПериода)-МАКСИМУМ(ТаблицаОстатковПартий.КоличествоНУОстаток))/СУММА(УчетЗатрат.КоличествоНУ) 
	|	//ДляРеглУчета	КОНЕЦ КАК ПостояннаяРазницаОстаток,				   
	|	ВЫБОР КОГДА СУММА(УчетЗатрат.Количество) = 0 ТОГДА
	|		МАКСИМУМ(ВнешниеПоступленияДопРасходов.Стоимость)
	|	ИНАЧЕ
	|		МАКСИМУМ(ВнешниеПоступленияДопРасходов.Стоимость)*(МАКСИМУМ(ТаблицаОстатковПартий.КоличествоОстатокНаКонецПериода)- МАКСИМУМ(ТаблицаОстатковПартий.КоличествоОстаток))/СУММА(УчетЗатрат.Количество) 
	|	КОНЕЦ КАК СтоимостьОстаток
	|ПОМЕСТИТЬ ОстаткиДопРасходов
	
	|ИЗ
	|	ВнешниеПоступленияДопРасходов КАК ВнешниеПоступленияДопРасходов
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		ТаблицаОстатковПартий КАК ТаблицаОстатковПартий
	|	ПО
	|		ТаблицаОстатковПартий.АналитикаВидаУчета = ВнешниеПоступленияДопРасходов.АналитикаВидаУчета
	|		И ТаблицаОстатковПартий.АналитикаУчетаЗатрат = ВнешниеПоступленияДопРасходов.АналитикаУчетаЗатрат
	|		И ТаблицаОстатковПартий.АналитикаУчетаПартий = ВнешниеПоступленияДопРасходов.АналитикаУчетаПартий
	|		И ТаблицаОстатковПартий.АналитикаРаспределенияЗатрат = ВнешниеПоступленияДопРасходов.АналитикаРаспределенияЗатрат
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		РегистрНакопления.УчетЗатрат%СуффиксРегл% КАК УчетЗатрат
	|	ПО
	|		ВнешниеПоступленияДопРасходов.АналитикаВидаУчета = УчетЗатрат.АналитикаВидаУчета
	|		И ВнешниеПоступленияДопРасходов.АналитикаУчетаЗатрат = УчетЗатрат.АналитикаУчетаЗатрат
	|		И ВнешниеПоступленияДопРасходов.АналитикаУчетаПартий = УчетЗатрат.АналитикаУчетаПартий
	|		И ВнешниеПоступленияДопРасходов.АналитикаРаспределенияЗатрат = УчетЗатрат.АналитикаРаспределенияЗатрат
	|		И УчетЗатрат.Период МЕЖДУ &ДатаНач И &ДатаКон
	|		И УчетЗатрат.Активность
	|		И УчетЗатрат.КорАналитикаВидаУчета = НЕОПРЕДЕЛЕНО
	|		И УчетЗатрат.ВидДвижения = &ВидДвиженияПриход
	|		И УчетЗатрат.Количество <> 0
	|
	|СГРУППИРОВАТЬ ПО
	|	УчетЗатрат.АналитикаВидаУчета,
	|	УчетЗатрат.АналитикаУчетаЗатрат,
	|	УчетЗатрат.АналитикаУчетаПартий,
	|	УчетЗатрат.АналитикаРаспределенияЗатрат
	|
	|;
	|////////////////////////////////////////////////////////////////////////////////
	|УНИЧТОЖИТЬ ВнешниеПоступленияДопРасходов";*/
			//Запрос.Текст = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(Запрос.Текст, ВидОтраженияВУчете);
			//Запрос.Выполнить();
			/*//Уменьшаем количество и сумму прихода в узлах, на количество и сумму "зафиксированного" конечного остатка
*/
			/*Запрос.Текст =
	"ВЫБРАТЬ
	|	ТаблицаУзлыКорректировкиСтоимостиСписания.АналитикаВидаУчета,
	|	ТаблицаУзлыКорректировкиСтоимостиСписания.АналитикаУчетаЗатрат,
	|	ТаблицаУзлыКорректировкиСтоимостиСписания.АналитикаУчетаПартий,
	|	ТаблицаУзлыКорректировкиСтоимостиСписания.АналитикаРаспределенияЗатрат,
	|	ТаблицаУзлыКорректировкиСтоимостиСписания.Количество  - ЕСТЬNULL(ТаблицаОстатковПартий.КоличествоОстатокНаКонецПериода,0) + ЕСТЬNULL(ТаблицаОстатковПартий.КоличествоОстаток,0) КАК Количество,
	|	//ДляРеглУчета	ТаблицаУзлыКорректировкиСтоимостиСписания.КоличествоНУ  - ЕСТЬNULL(ТаблицаОстатковПартий.КоличествоНУОстатокНаКонецПериода,0) + ЕСТЬNULL(ТаблицаОстатковПартий.КоличествоНУОстаток,0) КАК КоличествоНУ,
	|	//ДляРеглУчета	ТаблицаУзлыКорректировкиСтоимостиСписания.СтоимостьНУ - ЕСТЬNULL(ТаблицаОстатковПартий.СтоимостьНУОстаток,0) - ЕСТЬNULL(ОстаткиДопРасходов.СтоимостьНУОстаток,0) КАК СтоимостьНУ,
	|	//ДляРеглУчета	ТаблицаУзлыКорректировкиСтоимостиСписания.ПостояннаяРазница - ЕСТЬNULL(ТаблицаОстатковПартий.ПостояннаяРазницаОстаток,0) - ЕСТЬNULL(ОстаткиДопРасходов.ПостояннаяРазницаОстаток,0) КАК ПостояннаяРазница,
	|	ТаблицаУзлыКорректировкиСтоимостиСписания.Стоимость - ЕСТЬNULL(ТаблицаОстатковПартий.СтоимостьОстаток,0) - ЕСТЬNULL(ОстаткиДопРасходов.СтоимостьОстаток,0) КАК Стоимость
	|ИЗ
	|	ТаблицаУзлыКорректировкиСтоимостиСписания КАК ТаблицаУзлыКорректировкиСтоимостиСписания
	|	
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		ТаблицаОстатковПартий КАК ТаблицаОстатковПартий
	|	ПО
	|		ТаблицаУзлыКорректировкиСтоимостиСписания.АналитикаВидаУчета = ТаблицаОстатковПартий.АналитикаВидаУчета
	|		И ТаблицаУзлыКорректировкиСтоимостиСписания.АналитикаУчетаЗатрат = ТаблицаОстатковПартий.АналитикаУчетаЗатрат
	|		И ТаблицаУзлыКорректировкиСтоимостиСписания.АналитикаУчетаПартий = ТаблицаОстатковПартий.АналитикаУчетаПартий
	|		И ТаблицаУзлыКорректировкиСтоимостиСписания.АналитикаРаспределенияЗатрат = ТаблицаОстатковПартий.АналитикаРаспределенияЗатрат
	|	
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		ОстаткиДопРасходов КАК ОстаткиДопРасходов
	|	ПО
	|		ТаблицаУзлыКорректировкиСтоимостиСписания.АналитикаВидаУчета = ОстаткиДопРасходов.АналитикаВидаУчета
	|		И ТаблицаУзлыКорректировкиСтоимостиСписания.АналитикаУчетаЗатрат = ОстаткиДопРасходов.АналитикаУчетаЗатрат
	|		И ТаблицаУзлыКорректировкиСтоимостиСписания.АналитикаУчетаПартий = ОстаткиДопРасходов.АналитикаУчетаПартий
	|		И ТаблицаУзлыКорректировкиСтоимостиСписания.АналитикаРаспределенияЗатрат = ОстаткиДопРасходов.АналитикаРаспределенияЗатрат
	|	
	|АВТОУПОРЯДОЧИВАНИЕ";*/
			//Запрос.Текст = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(Запрос.Текст, ВидОтраженияВУчете);
		}
		// Функция возвращает таблицу разделов учета, по которым не нужно формировать движения по аналитическим регистрам
		//
		// Параметры:
		//	нет.
		//
		// Возвращаемое значение:
		//	Таблица значений содержащая разделы учета
		//

		public object СформироватьТаблицуИсключаемыхРазделовУчета(/**/)
		{
			//ИсключаемыеРазделыУчета = Новый Массив();
			//ИсключаемыеРазделыУчета.Добавить(Перечисления.РазделыУчета.Выпуск);
			//ИсключаемыеРазделыУчета.Добавить(Перечисления.РазделыУчета.Наработка);
			//ТаблицаИсключаемыхРазделовУчета = Новый ТаблицаЗначений;
			//ТаблицаИсключаемыхРазделовУчета.Колонки.Добавить("РазделУчета", Новый ОписаниеТипов("ПеречислениеСсылка.РазделыУчета"));
			return null;
		}
		// Функция возвращает таблицу кодов операций, по которым не нужно формировать движения по аналитическим регистрам
		//
		// Параметры:
		//	нет.
		//
		// Возвращаемое значение:
		//	Таблица значений содержащая коды операций
		//

		public object СформироватьТаблицуИсключаемыхКодовОпераций(/**/)
		{
			//ИсключаемыеКодыОпераций = ПолучитьМассивКодовОперацийСписаниеЗатрат();
			//ИсключаемыеКодыОпераций.Добавить(Перечисления.КодыОперацийНезавершенноеПроизводство.РаспределениеНЗПРегламент);
			//ТаблицаИсключаемыхКодовОпераций = Новый ТаблицаЗначений;
			/*ТаблицаИсключаемыхКодовОпераций.Колонки.Добавить("КодОперации", Новый ОписаниеТипов("ПеречислениеСсылка.КодыОперацийЗатраты, ПеречислениеСсылка.КодыОперацийНезавершенноеПроизводство,
		|ПеречислениеСсылка.КодыОперацийЗатратыНаВыпускПродукции, ПеречислениеСсылка.КодыОперацийБракВПроизводстве"));*/
			return null;
		}
		////////////////////////////////////////////////////////////////
		// ФОРМИРОВАНИЕ ДВИЖЕНИЙ
		// Процедура формирует движение по регистрам УчетЗатрат и УчетЗатратРегл
		//
		// Параметры:
		//	НаборЗаписей - набор записей, в который нужно добавлять движения,
		//	Период - дата, на которую нужно добавлять движения,
		//	РегламентныйДокумент - документ, по которому нужно добавлять движения,
		//	КодОперации - код операции для записи в регистр,
		//	СтрокаДвижения - структура, содержащая аналитику для помещения в регистр,
		//	СтруктраСтоимостей - структура, содержащая информацию о суммах,
		//	МассивКодовОперацийСписания - массив кодов операций, по которым не нужно формировать приходное движение,
		//	ВидОтраженияВУчете - перечисление, признак отражения в учете.
		//

		public void СформироватьДвиженияПоРегиструУчетаЗатрат(/*
	НаборЗаписей, 
	Период, 
	РегламентныйДокумент, 
	КодОперации, 
	СтрокаДвижения, 
	СтруктраСтоимостей, 
	МассивКодовОперацийСписания, 
	ВидОтраженияВУчете*/)
		{
			/*//Расход
*/
			//НоваяСтрока = НаборЗаписей.Добавить();
			//НоваяСтрока.Период 							= Период;
			//НоваяСтрока.Регистратор 					= РегламентныйДокумент.Ссылка;
			//НоваяСтрока.АналитикаВидаУчета 				= СтрокаДвижения.АналитикаВидаУчета;
			//НоваяСтрока.АналитикаУчетаЗатрат 			= СтрокаДвижения.АналитикаУчетаЗатрат;
			//НоваяСтрока.АналитикаУчетаПартий 			= СтрокаДвижения.АналитикаУчетаПартий;
			//НоваяСтрока.АналитикаРаспределенияЗатрат 	= СтрокаДвижения.АналитикаРаспределенияЗатрат;
			//НоваяСтрока.КорАналитикаВидаУчета 			= СтрокаДвижения.КорАналитикаВидаУчета;
			//НоваяСтрока.КорАналитикаРаспределенияЗатрат = СтрокаДвижения.КорАналитикаРаспределенияЗатрат;
			//НоваяСтрока.КорАналитикаУчетаЗатрат 		= СтрокаДвижения.КорАналитикаУчетаЗатрат;
			//НоваяСтрока.КорАналитикаУчетаПартий 		= СтрокаДвижения.КорАналитикаУчетаПартий;
			//НоваяСтрока.Стоимость 						= СтруктраСтоимостей.Стоимость;
			if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВРегламентированномУчете
	 ИЛИ ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВНалоговомУчете*/)
			{
				//НоваяСтрока.СтоимостьНУ 				= СтруктраСтоимостей.СтоимостьНУ;
				//НоваяСтрока.ПостояннаяРазница 			= СтруктраСтоимостей.ПостояннаяРазница;
			}
			//НоваяСтрока.ВидДвижения 					= ВидДвиженияНакопления.Расход;
			//НоваяСтрока.КодОперации 					= КодОперации;
			/*//Приход
*/
			if(true/*МассивКодовОперацийСписания.Найти(КодОперации) = Неопределено 
	 И НЕ ТипЗнч(СтрокаДвижения.КорАналитикаВидаУчета) = Тип("СправочникСсылка.КлючиАналитикиУчетаПрочихЗатрат")*/)
			{
				//НоваяСтрока = НаборЗаписей.Добавить();
				//НоваяСтрока.Период 							= Период;
				//НоваяСтрока.Регистратор 					= РегламентныйДокумент.Ссылка;
				//НоваяСтрока.АналитикаВидаУчета 				= СтрокаДвижения.КорАналитикаВидаУчета;
				//НоваяСтрока.АналитикаУчетаЗатрат 			= СтрокаДвижения.КорАналитикаУчетаЗатрат;
				//НоваяСтрока.АналитикаУчетаПартий 			= СтрокаДвижения.КорАналитикаУчетаПартий;
				//НоваяСтрока.АналитикаРаспределенияЗатрат 	= СтрокаДвижения.КорАналитикаРаспределенияЗатрат;
				//НоваяСтрока.КорАналитикаВидаУчета 			= СтрокаДвижения.АналитикаВидаУчета;
				//НоваяСтрока.КорАналитикаРаспределенияЗатрат = СтрокаДвижения.АналитикаРаспределенияЗатрат;
				//НоваяСтрока.КорАналитикаУчетаЗатрат 		= СтрокаДвижения.АналитикаУчетаЗатрат;
				//НоваяСтрока.КорАналитикаУчетаПартий 		= СтрокаДвижения.АналитикаУчетаПартий;
				//НоваяСтрока.Стоимость 						= СтруктраСтоимостей.Стоимость;
				if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВРегламентированномУчете
	  	 ИЛИ ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВНалоговомУчете*/)
				{
					//НоваяСтрока.СтоимостьНУ 				= СтруктраСтоимостей.СтоимостьНУ;
					//НоваяСтрока.ПостояннаяРазница 			= СтруктраСтоимостей.ПостояннаяРазница;
				}
				//НоваяСтрока.ВидДвижения 					= ВидДвиженияНакопления.Приход;
				//НоваяСтрока.КодОперации 					= КодОперации;
			}
		}
		// Функция формирует временную таблицу "УзлыКорректировкиСтоимостиСписания".
		//

		public object СформироватьВременнуюТаблицуУзлыКорректировкиСтоимостиСписания(/*
	Запрос, 
	РегистрУчета, 
	ВидОтраженияВУчете, 
	СтруктураПараметров,
	ОперацияРасчетаСебестоимостиВыпуска*/)
		{
			/*// Получим таблицу новых узлов, каждый узел определяется комбинацией всех измерений партионного упр. учета
*/
			/*// В колонки Стоимость, СтоимостьНУ и ПостояннаяРазница помещается средняя цена 
*/
			/*// по соответствующему ресурсу регистров УчетЗатрат и УчетЗатратРегл по внешнему поступлению для каждого узла. 
*/
			/*// Эти колонки являются правыми частями в системе линейных уравнений. 
*/
			/*// В колонки Количество и КоличествоНУ помещается общее количество поступления в каждый узел. 
*/
			/*// Если по данному узлу движений по количеству не было, а были только движения по стоимости, 
*/
			/*// значит вместо количества используется стоимость (узел соответствует не материальным расходам).
*/
			/*// Если из узла было списание по фиксированной стоимости то уменьшаем количество 
*/
			/*// и стоимость поступления в данный узел на количество и стоимость по фиксированной операции.
*/
			/*Запрос.Текст =
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	УчетЗатрат.АналитикаВидаУчета 			КАК АналитикаВидаУчета,
	|	УчетЗатрат.АналитикаУчетаЗатрат 		КАК АналитикаУчетаЗатрат,
	|	УчетЗатрат.АналитикаУчетаПартий 		КАК АналитикаУчетаПартий,
	|	УчетЗатрат.АналитикаРаспределенияЗатрат КАК АналитикаРаспределенияЗатрат
	|
	|ПОМЕСТИТЬ АналитикаДляРасчетов
	|ИЗ
	|	РегистрНакопления.УчетЗатрат%СуффиксРегл% КАК УчетЗатрат
	|
	|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|		ОтборПоАналитикеВидовУчета КАК ОтборПоАналитикеВидовУчета
	|	ПО
	|		УчетЗатрат.АналитикаВидаУчета = ОтборПоАналитикеВидовУчета.Ссылка
	|ГДЕ
	|	УчетЗатрат.Период МЕЖДУ &ДатаНач И &ДатаКон
	|	И УчетЗатрат.Активность
	|	И (
	|		УчетЗатрат.Количество <> 0
	|		ИЛИ УчетЗатрат.Стоимость <> 0 
	|		//ДляРеглУчета ИЛИ УчетЗатрат.КоличествоНУ <> 0 
	|		//ДляРеглУчета ИЛИ УчетЗатрат.СтоимостьНУ <> 0
	|		//ДляРеглУчета ИЛИ УчетЗатрат.ПостояннаяРазница <> 0
	|		)
	|;
	|////////////////////////////////////////////////////////////////////////
	|
	|ВЫБРАТЬ
	|	ДанныеДляРасчетов.АналитикаВидаУчета 							 КАК АналитикаВидаУчета,
	|	ДанныеДляРасчетов.АналитикаУчетаЗатрат 							 КАК АналитикаУчетаЗатрат,
	|	ДанныеДляРасчетов.АналитикаУчетаПартий 							 КАК АналитикаУчетаПартий,
	|	ДанныеДляРасчетов.АналитикаРаспределенияЗатрат 					 КАК АналитикаРаспределенияЗатрат,
	|
	|	СУММА(ДанныеДляРасчетов.Количество) 							 КАК Количество,
	|	СУММА(ДанныеДляРасчетов.СтоимостьДляКоличества) 				 КАК СтоимостьДляКоличества,
	|	
	|	//ДляРеглУчета СУММА(ДанныеДляРасчетов.КоличествоНУ) 			 КАК КоличествоНУ,
	|	//ДляРеглУчета СУММА(ДанныеДляРасчетов.СтоимостьДляКоличестваНУ) КАК СтоимостьДляКоличестваНУ,
	|
	|	//ДляРеглУчета СУММА(ДанныеДляРасчетов.ПостояннаяРазница) 		 КАК ПостояннаяРазница,
	|	//ДляРеглУчета СУММА(ДанныеДляРасчетов.СтоимостьНУ) 			 КАК СтоимостьНУ,
	|	
	|	СУММА(ДанныеДляРасчетов.Стоимость) 								 КАК Стоимость
	|	
	|ПОМЕСТИТЬ ДанныеДляРасчетов  
	|ИЗ
	|	(ВЫБРАТЬ
	|		УчетЗатрат.АналитикаВидаУчета КАК АналитикаВидаУчета,
	|		УчетЗатрат.АналитикаУчетаЗатрат КАК АналитикаУчетаЗатрат,
	|		УчетЗатрат.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
	|		УчетЗатрат.АналитикаРаспределенияЗатрат КАК АналитикаРаспределенияЗатрат,
	|
	|		УчетЗатрат.Количество КАК Количество,
	|		УчетЗатрат.Стоимость  КАК СтоимостьДляКоличества,
	|
	|		//ДляРеглУчета	УчетЗатрат.КоличествоНУ КАК КоличествоНУ,
	|		//ДляРеглУчета	УчетЗатрат.СтоимостьНУ+УчетЗатрат.ПостояннаяРазница КАК СтоимостьДляКоличестваНУ,
	|
	|		//ДляРеглУчета	ВЫБОР КОГДА УчетЗатрат.КорАналитикаВидаУчета = Неопределено
	|		//ДляРеглУчета		ИЛИ (НЕ АналитикаВидовУчетаСФиксСтоимостьюСписания.Ссылка ЕСТЬ NULL)
	|		//ДляРеглУчета		ИЛИ (НЕ КодыОперацийФиксСтоимость.КодОперации ЕСТЬ NULL)
	|		//ДляРеглУчета	ТОГДА
	|		//ДляРеглУчета		УчетЗатрат.ПостояннаяРазница
	|		//ДляРеглУчета	ИНАЧЕ
	|		//ДляРеглУчета		0
	|		//ДляРеглУчета	КОНЕЦ КАК ПостояннаяРазница,
	|		//ДляРеглУчета	ВЫБОР КОГДА УчетЗатрат.КорАналитикаВидаУчета = Неопределено
	|		//ДляРеглУчета		ИЛИ (НЕ АналитикаВидовУчетаСФиксСтоимостьюСписания.Ссылка ЕСТЬ NULL)
	|		//ДляРеглУчета		ИЛИ (НЕ КодыОперацийФиксСтоимость.КодОперации ЕСТЬ NULL)
	|		//ДляРеглУчета	ТОГДА
	|		//ДляРеглУчета		УчетЗатрат.СтоимостьНУ
	|		//ДляРеглУчета	ИНАЧЕ
	|		//ДляРеглУчета		0
	|		//ДляРеглУчета	КОНЕЦ КАК СтоимостьНУ,
	|
	|		ВЫБОР КОГДА УчетЗатрат.КорАналитикаВидаУчета = Неопределено
	|			ИЛИ (НЕ АналитикаВидовУчетаСФиксСтоимостьюСписания.Ссылка ЕСТЬ NULL)
	|			ИЛИ (НЕ КодыОперацийФиксСтоимость.КодОперации ЕСТЬ NULL)
	|		ТОГДА
	|			УчетЗатрат.Стоимость
	|		ИНАЧЕ 
	|			0
	|		КОНЕЦ КАК Стоимость
	|	ИЗ
	|		РегистрНакопления.УчетЗатрат%СуффиксРегл% КАК УчетЗатрат
	|		
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|			ОтборПоАналитикеВидовУчета КАК ОтборПоАналитикеВидовУчета
	|		ПО 
	|			УчетЗатрат.АналитикаВидаУчета = ОтборПоАналитикеВидовУчета.Ссылка
	|		
	|		ЛЕВОЕ СОЕДИНЕНИЕ
	|			АналитикаВидовУчетаСФиксСтоимостьюСписания КАК АналитикаВидовУчетаСФиксСтоимостьюСписания
	|		ПО
	|			УчетЗатрат.КорАналитикаВидаУчета = АналитикаВидовУчетаСФиксСтоимостьюСписания.Ссылка
	|		
	|		ЛЕВОЕ СОЕДИНЕНИЕ
	|			КодыОперацийФиксСтоимость КАК КодыОперацийФиксСтоимость
	|		ПО
	|			УчетЗатрат.КодОперации = КодыОперацийФиксСтоимость.КодОперации
	|		
	|	ГДЕ
	|		УчетЗатрат.Период МЕЖДУ &ДатаНач И &ДатаКон
	|		И УчетЗатрат.Активность
	|		И УчетЗатрат.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
	|		
	|	ОБЪЕДИНИТЬ ВСЕ
	|		
	|	ВЫБРАТЬ
	|		УчетЗатрат.АналитикаВидаУчета КАК АналитикаВидаУчета,
	|		УчетЗатрат.АналитикаУчетаЗатрат КАК АналитикаУчетаЗатрат,
	|		УчетЗатрат.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
	|		УчетЗатрат.АналитикаРаспределенияЗатрат КАК АналитикаРаспределенияЗатрат,
	|
	|		(0 - УчетЗатрат.Количество) КАК Количество,
	|		(0 - УчетЗатрат.Стоимость)  КАК СтоимостьДляКоличества,
	|
	|		//ДляРеглУчета	(0 - УчетЗатрат.КоличествоНУ) КАК КоличествоНУ,
	|		//ДляРеглУчета	(0 - УчетЗатрат.СтоимостьНУ - УчетЗатрат.ПостояннаяРазница) КАК СтоимостьДляКоличестваНУ,
	|
	|		//ДляРеглУчета	(0 - УчетЗатрат.ПостояннаяРазница) КАК ПостояннаяРазница,
	|		//ДляРеглУчета	(0 - УчетЗатрат.СтоимостьНУ) КАК СтоимостьНУ,
	|
	|		(0 - УчетЗатрат.Стоимость) КАК Стоимость
	|	ИЗ
	|		РегистрНакопления.УчетЗатрат%СуффиксРегл% КАК УчетЗатрат
	|
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|			ОтборПоАналитикеВидовУчета КАК ОтборПоАналитикеВидовУчета
	|		ПО
	|			УчетЗатрат.АналитикаВидаУчета = ОтборПоАналитикеВидовУчета.Ссылка
	|		
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|			КодыОперацийФиксСтоимость КАК КодыОперацийФиксСтоимость
	|		ПО
	|			УчетЗатрат.КодОперации = КодыОперацийФиксСтоимость.КодОперации
	|		
	|	ГДЕ
	|		УчетЗатрат.Период МЕЖДУ &ДатаНач И &ДатаКон
	|		И УчетЗатрат.Активность
	|		И УчетЗатрат.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
	|		
	|	ОБЪЕДИНИТЬ ВСЕ
	|		
	|	ВЫБРАТЬ
	|		УчетЗатратОстатки.АналитикаВидаУчета,
	|		УчетЗатратОстатки.АналитикаУчетаЗатрат,
	|		УчетЗатратОстатки.АналитикаУчетаПартий,
	|		УчетЗатратОстатки.АналитикаРаспределенияЗатрат,
	|
	|		УчетЗатратОстатки.КоличествоОстаток,
	|		УчетЗатратОстатки.СтоимостьОстаток,
	|
	|		//ДляРеглУчета	УчетЗатратОстатки.КоличествоНУОстаток КАК КоличествоНУ,
	|		//ДляРеглУчета	УчетЗатратОстатки.СтоимостьНУОстаток+УчетЗатратОстатки.ПостояннаяРазницаОстаток,
	|
	|		//ДляРеглУчета	УчетЗатратОстатки.ПостояннаяРазницаОстаток КАК ПостояннаяРазница,
	|		//ДляРеглУчета	УчетЗатратОстатки.СтоимостьНУОстаток КАК СтоимостьНУ,
	|
	|		УчетЗатратОстатки.СтоимостьОстаток
	|	ИЗ
	|		РегистрНакопления.УчетЗатрат%СуффиксРегл%.Остатки(
	|			&ДатаНач, 
	|			АналитикаВидаУчета В (ВЫБРАТЬ Ссылка ИЗ ОтборПоАналитикеВидовУчета)) КАК УчетЗатратОстатки
	|	) КАК ДанныеДляРасчетов
	|
	|СГРУППИРОВАТЬ ПО
	|	ДанныеДляРасчетов.АналитикаВидаУчета,
	|	ДанныеДляРасчетов.АналитикаУчетаЗатрат,
	|	ДанныеДляРасчетов.АналитикаУчетаПартий,
	|	ДанныеДляРасчетов.АналитикаРаспределенияЗатрат
	|
	|;
	|////////////////////////////////////////////////////////////////////////
	|
	|ВЫБРАТЬ
	|	АналитикаДляРасчетов.АналитикаВидаУчета 										КАК АналитикаВидаУчета,
	|	АналитикаДляРасчетов.АналитикаУчетаЗатрат 										КАК АналитикаУчетаЗатрат,
	|	АналитикаДляРасчетов.АналитикаУчетаПартий 										КАК АналитикаУчетаПартий,
	|	АналитикаДляРасчетов.АналитикаРаспределенияЗатрат 								КАК АналитикаРаспределенияЗатрат,
	|
	|	ЕСТЬNULL(ВЫБОР КОГДА ДанныеДляРасчетов.Количество = 0 ТОГДА 
	|		ДанныеДляРасчетов.СтоимостьДляКоличества
	|	ИНАЧЕ 
	|		ДанныеДляРасчетов.Количество
	|	КОНЕЦ, 0) 																		КАК Количество,
	|
	|	//ДляРеглУчета ЕСТЬNULL(ВЫБОР КОГДА ДанныеДляРасчетов.КоличествоНУ = 0 ТОГДА 
	|	//ДляРеглУчета 		ДанныеДляРасчетов.СтоимостьДляКоличестваНУ
	|	//ДляРеглУчета ИНАЧЕ 
	|	//ДляРеглУчета 		ДанныеДляРасчетов.КоличествоНУ 
	|	//ДляРеглУчета КОНЕЦ, 0) 														КАК КоличествоНУ,
	|
	|	//ДляРеглУчета ЕСТЬNULL(ДанныеДляРасчетов.СтоимостьНУ, 0) 						КАК СтоимостьНУ,
	|	//ДляРеглУчета ЕСТЬNULL(ДанныеДляРасчетов.ПостояннаяРазница, 0) 				КАК ПостояннаяРазница,
	|	
	|	ЕСТЬNULL(ДанныеДляРасчетов.Стоимость, 0) 										КАК Стоимость
	|
	|//ДляФИФО ПОМЕСТИТЬ ТаблицаУзлыКорректировкиСтоимостиСписания
	|ИЗ
	|	АналитикаДляРасчетов КАК АналитикаДляРасчетов
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		ДанныеДляРасчетов КАК ДанныеДляРасчетов
	|	ПО 
	|		АналитикаДляРасчетов.АналитикаВидаУчета 			= ДанныеДляРасчетов.АналитикаВидаУчета
	|		И АналитикаДляРасчетов.АналитикаУчетаЗатрат 		= ДанныеДляРасчетов.АналитикаУчетаЗатрат
	|		И АналитикаДляРасчетов.АналитикаУчетаПартий 		= ДанныеДляРасчетов.АналитикаУчетаПартий
	|		И АналитикаДляРасчетов.АналитикаРаспределенияЗатрат = ДанныеДляРасчетов.АналитикаРаспределенияЗатрат
	|
	|//ДляПоСредней АВТОУПОРЯДОЧИВАНИЕ
	|;
	|////////////////////////////////////////////////////////////////////////
	|
	|УНИЧТОЖИТЬ АналитикаДляРасчетов
	|;
	|////////////////////////////////////////////////////////////////////////
	|
	|УНИЧТОЖИТЬ ДанныеДляРасчетов";*/
			//Запрос.Текст = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(Запрос.Текст, ВидОтраженияВУчете);
			if(true/*СтруктураПараметров.СпособОценкиМПЗ = Перечисления.СпособыОценки.ФИФО*/)
			{
				//ПодготовитьЗапросДляСписанияПоФИФО(Запрос, ВидОтраженияВУчете);
			}
			//НомерУзла = 0;
			//Результат = Запрос.Выполнить();
			/*// Создадим таблицу узлов корректировки стоимости списания
*/
			//УзлыКорректировкиСтоимостиСписания = Новый ТаблицаЗначений;
			//УзлыКорректировкиСтоимостиСписания.Колонки.Добавить("НомерУзла", 					Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(10,0)));
			//УзлыКорректировкиСтоимостиСписания.Колонки.Добавить("АналитикаВидаУчета", 			Новый ОписаниеТипов("СправочникСсылка.КлючиАналитикиВидаУчета"));
			//УзлыКорректировкиСтоимостиСписания.Колонки.Добавить("АналитикаУчетаЗатрат", 		Новый ОписаниеТипов("СправочникСсылка.КлючиАналитикиУчетаЗатрат"));
			//УзлыКорректировкиСтоимостиСписания.Колонки.Добавить("АналитикаУчетаПартий", 		Новый ОписаниеТипов("СправочникСсылка.КлючиАналитикиУчетаПартий"));
			//УзлыКорректировкиСтоимостиСписания.Колонки.Добавить("АналитикаРаспределенияЗатрат", Новый ОписаниеТипов("СправочникСсылка.КлючиАналитикиРаспределенияЗатрат"));
			//УзлыКорректировкиСтоимостиСписания.Колонки.Добавить("Количество", 					Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15,3)));
			//УзлыКорректировкиСтоимостиСписания.Колонки.Добавить("Стоимость", 					Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(31,18)));
			if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВРегламентированномУчете*/)
			{
				//УзлыКорректировкиСтоимостиСписания.Колонки.Добавить("КоличествоНУ", 			Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15,3)));
				//УзлыКорректировкиСтоимостиСписания.Колонки.Добавить("СтоимостьНУ", 				Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(31,18)));
				//УзлыКорректировкиСтоимостиСписания.Колонки.Добавить("ПостояннаяРазница", 		Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(31,18)));
			}
			if(true/*НЕ Результат.Пустой()*/)
			{
				//Выборка = Результат.Выбрать();
				while(true/*Выборка.Следующий()*/)
				{
					//НомерУзла = НомерУзла + 1;
					//НовыйУзел = УзлыКорректировкиСтоимостиСписания.Добавить();
					//НовыйУзел.НомерУзла   = НомерУзла;
					//ЗаполнитьЗначенияСвойств(НовыйУзел, Выборка);
					/*// Рассчитаем стоимость на единицу количества
*/
					//НовыйУзел.Стоимость = ?(Выборка.Количество = 0, 0, Выборка.Стоимость / Выборка.Количество);
					/*// Для регл. учета рассчитаем значения ресурсов СтоимостьНУ и ПостояннаяРазница
*/
					/*// Для упр. учета их значения всегда равны 0 (в запросе не выбираются)
*/
					if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВРегламентированномУчете*/)
					{
						//НовыйУзел.СтоимостьНУ 		= ?(Выборка.КоличествоНУ = 0, 0, Выборка.СтоимостьНУ / Выборка.КоличествоНУ);
						//НовыйУзел.ПостояннаяРазница = ?(Выборка.КоличествоНУ = 0, 0, Выборка.ПостояннаяРазница / Выборка.КоличествоНУ);
					}
				}
				//;;
			}
			/*// Поместим таблицу "УзлыКорректировкиСтоимостиСписания" во временную таблицу
*/
			/*Запрос.Текст =
	"ВЫБРАТЬ
	|	УзлыКорректировкиСтоимостиСписания.НомерУзла,
	|	УзлыКорректировкиСтоимостиСписания.АналитикаВидаУчета,
	|	УзлыКорректировкиСтоимостиСписания.АналитикаУчетаЗатрат,
	|	УзлыКорректировкиСтоимостиСписания.АналитикаУчетаПартий,
	|	УзлыКорректировкиСтоимостиСписания.АналитикаРаспределенияЗатрат,
	|	УзлыКорректировкиСтоимостиСписания.Количество,
	|	//ДляРеглУчета УзлыКорректировкиСтоимостиСписания.КоличествоНУ,
	|	//ДляРеглУчета УзлыКорректировкиСтоимостиСписания.СтоимостьНУ,
	|	//ДляРеглУчета УзлыКорректировкиСтоимостиСписания.ПостояннаяРазница,
	|	УзлыКорректировкиСтоимостиСписания.Стоимость
	|
	|ПОМЕСТИТЬ УзлыКорректировкиСтоимостиСписания
	|ИЗ
	|	&УзлыКорректировкиСтоимостиСписания КАК УзлыКорректировкиСтоимостиСписания
	|	
	|ИНДЕКСИРОВАТЬ ПО
	|	АналитикаВидаУчета,
	|	АналитикаУчетаЗатрат,
	|	АналитикаУчетаПартий,
	|	АналитикаРаспределенияЗатрат";*/
			//Запрос.УстановитьПараметр("УзлыКорректировкиСтоимостиСписания", УзлыКорректировкиСтоимостиСписания);
			//Запрос.Текст = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(Запрос.Текст, ВидОтраженияВУчете);
			//Запрос.Выполнить();
			if(true/*СтруктураПараметров.ВременныеТаблицыДляРешенияСЛУ*/)
			{
				/*// первое приближение (решение на первой итерации)
*/
				/*Запрос.Текст =
		"ВЫБРАТЬ
		|	УзлыКорректировкиСтоимостиСписания.НомерУзла,
		|	//ДляРеглУчета	ВЫБОР КОГДА ПредыдущееРешение.ПостояннаяРазница ЕСТЬ NULL ТОГДА УзлыКорректировкиСтоимостиСписания.ПостояннаяРазница ИНАЧЕ ПредыдущееРешение.ПостояннаяРазница КОНЕЦ КАК ПостояннаяРазница,
		|	//ДляРеглУчета	ВЫБОР КОГДА ПредыдущееРешение.СтоимостьНУ ЕСТЬ NULL ТОГДА УзлыКорректировкиСтоимостиСписания.СтоимостьНУ ИНАЧЕ ПредыдущееРешение.СтоимостьНУ КОНЕЦ КАК СтоимостьНУ,
		|	ВЫБОР КОГДА ПредыдущееРешение.Стоимость ЕСТЬ NULL ТОГДА УзлыКорректировкиСтоимостиСписания.Стоимость ИНАЧЕ ПредыдущееРешение.Стоимость КОНЕЦ КАК Стоимость
		|
		|ПОМЕСТИТЬ ТаблицаРешений
		|ИЗ
		|	УзлыКорректировкиСтоимостиСписания КАК УзлыКорректировкиСтоимостиСписания
		|
		|	ЛЕВОЕ СОЕДИНЕНИЕ
		|		РегистрСведений.ПервоеПриближениеДляРешенияСЛУ КАК ПредыдущееРешение
		|	ПО
		|		ПредыдущееРешение.АналитикаВидаУчета 					= УзлыКорректировкиСтоимостиСписания.АналитикаВидаУчета
		|		И ПредыдущееРешение.АналитикаУчетаЗатрат 				= УзлыКорректировкиСтоимостиСписания.АналитикаУчетаЗатрат
		|		И ПредыдущееРешение.АналитикаУчетаПартий 				= УзлыКорректировкиСтоимостиСписания.АналитикаУчетаПартий
		|		И ПредыдущееРешение.АналитикаРаспределенияЗатрат 		= УзлыКорректировкиСтоимостиСписания.АналитикаРаспределенияЗатрат
		|		И ПредыдущееРешение.ДокументРасчетаСебестоимости 		= &Регистратор
		|		И ПредыдущееРешение.ОперацияРасчетаСебестоимостиВыпуска = &ОперацияРасчетаСебестоимостиВыпуска
		|	
		|ИНДЕКСИРОВАТЬ ПО
		|	НомерУзла";*/
				//Запрос.УстановитьПараметр("ОперацияРасчетаСебестоимостиВыпуска", ОперацияРасчетаСебестоимостиВыпуска);
				//Запрос.Текст = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(Запрос.Текст, ВидОтраженияВУчете);
				//Запрос.Выполнить();
			}
			return null;
		}
		// Процедура формирует корректирующие движения по регистрам УчетЗатрат и УчетЗатратРегл по результатам расчета сумм корректировки до среднего
		//
		// Параметры:
		//	ДатаНач 					- дата начала месяца, за который производиться корректировка,
		//	ДатаКон						- дата окончания месяца, за который производиться корректировка,
		//	СтруктураПараметров			- структура параметров, содержит некоторые реквизиты шапки и наборы записей для формирования движений по регистрам,
		//	РегистрУчета				- строка, содержит имя регистра учета затрат,
		//	ВидОтраженияВУчете			- перечисление, вид учета по которому выполняется корректировка,
		//	МенеджерВременныхТаблиц		- Менеджер временных таблиц, в нем содержаться таблица с результатами расчета корректировки.
		//

		public void СформироватьКорректирующиеДвиженияРасширеннаяАналитика(/*ДатаНач, ДатаКон, СтруктураПараметров, РегистрУчета, ВидОтраженияВУчете, МенеджерВременныхТаблиц*/)
		{
			//МассивКодовОперацийСписания = ПолучитьМассивКодовОперацийВнешнегоСписания();
			//Запрос = Новый Запрос;
			//Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
			/*Запрос.Текст =
	"ВЫБРАТЬ
	|	УчетЗатрат.АналитикаВидаУчета,
	|	УчетЗатрат.АналитикаУчетаЗатрат,
	|	УчетЗатрат.АналитикаУчетаПартий,
	|	УчетЗатрат.АналитикаРаспределенияЗатрат,
	|	УчетЗатрат.КорАналитикаВидаУчета,
	|	УчетЗатрат.КорАналитикаРаспределенияЗатрат,
	|	УчетЗатрат.КорАналитикаУчетаЗатрат,
	|	УчетЗатрат.КорАналитикаУчетаПартий,
	|	УчетЗатрат.КодОперации,
	|
	|	//ДляРеглУчета СУММА(УчетЗатрат.КоличествоНУ) КАК КоличествоНУ,
	|	//ДляРеглУчета СУММА(УчетЗатрат.ПостояннаяРазница) КАК ПостояннаяРазница,
	|	//ДляРеглУчета СУММА(УчетЗатрат.СтоимостьНУ) КАК СтоимостьНУ,
	|
	|	СУММА(УчетЗатрат.Количество) КАК Количество,
	|	СУММА(УчетЗатрат.Стоимость) КАК Стоимость
	|
	|ПОМЕСТИТЬ ВТДвиженияУчетЗатрат
	|ИЗ 
	|	РегистрНакопления.УчетЗатрат%СуффиксРегл% КАК УчетЗатрат
	|
	|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ 
	|		ОтборПоАналитикеВидовУчета КАК ОтборПоАналитикеВидовУчета
	|	ПО 
	|		УчетЗатрат.АналитикаВидаУчета = ОтборПоАналитикеВидовУчета.Ссылка
	|	
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		КодыОперацийФиксСтоимость КАК КодыОперацийФиксСтоимость
	|	ПО
	|		УчетЗатрат.КодОперации = КодыОперацийФиксСтоимость.КодОперации
	|	
	|ГДЕ
	|	УчетЗатрат.Период МЕЖДУ &ДатаНач И &ДатаКон
	|	И УчетЗатрат.Активность
	|	И УчетЗатрат.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
	|	И КодыОперацийФиксСтоимость.КодОперации ЕСТЬ NULL
	|
	|СГРУППИРОВАТЬ ПО
	|	УчетЗатрат.АналитикаВидаУчета,
	|	УчетЗатрат.АналитикаУчетаЗатрат,
	|	УчетЗатрат.АналитикаУчетаПартий,
	|	УчетЗатрат.АналитикаРаспределенияЗатрат,
	|	УчетЗатрат.КорАналитикаВидаУчета,
	|	УчетЗатрат.КорАналитикаРаспределенияЗатрат,
	|	УчетЗатрат.КорАналитикаУчетаЗатрат,
	|	УчетЗатрат.КорАналитикаУчетаПартий,
	|	УчетЗатрат.КодОперации
	|
	|ИНДЕКСИРОВАТЬ ПО
	|	УчетЗатрат.АналитикаВидаУчета,
	|	УчетЗатрат.АналитикаУчетаЗатрат,
	|	УчетЗатрат.АналитикаУчетаПартий,
	|	УчетЗатрат.АналитикаРаспределенияЗатрат
	|;
	|////////////////////////////////////////////////////////////
	|
	|ВЫБРАТЬ
	|	УзлыКорректировкиСтоимостиСписания.АналитикаВидаУчета,
	|	УзлыКорректировкиСтоимостиСписания.АналитикаУчетаЗатрат,
	|	УзлыКорректировкиСтоимостиСписания.АналитикаУчетаПартий,
	|	УзлыКорректировкиСтоимостиСписания.АналитикаРаспределенияЗатрат,
	|	УзлыКорректировкиСтоимостиСписания.НомерУзла КАК НомерУзла,
	|
	|	УчетЗатрат.КорАналитикаВидаУчета КАК КорАналитикаВидаУчета,
	|	УчетЗатрат.КорАналитикаРаспределенияЗатрат КАК КорАналитикаРаспределенияЗатрат,
	|	УчетЗатрат.КорАналитикаУчетаЗатрат КАК КорАналитикаУчетаЗатрат,
	|	УчетЗатрат.КорАналитикаУчетаПартий КАК КорАналитикаУчетаПартий,
	|	УчетЗатрат.КодОперации КАК КодОперации,
	|
	|	//ДляРеглУчета ВЫБОР КОГДА ЕСТЬNULL(УчетЗатрат.КоличествоНУ, 0) = 0
	|	//ДляРеглУчета 	И ОтборПоАналитикеВидовУчетаРазделМПЗ.Ссылка ЕСТЬ NULL
	|	//ДляРеглУчета ТОГДА
	|	//ДляРеглУчета 		ЕСТЬNULL(УчетЗатрат.СтоимостьНУ, 0) + ЕСТЬNULL(УчетЗатрат.ПостояннаяРазница, 0)
	|	//ДляРеглУчета ИНАЧЕ 
	|	//ДляРеглУчета 		ЕСТЬNULL(УчетЗатрат.КоличествоНУ, 0)
	|	//ДляРеглУчета КОНЕЦ КАК КоличествоНУ,
	|
	|	//ДляРеглУчета ЕСТЬNULL(УчетЗатрат.ПостояннаяРазница, 0) КАК ПостояннаяРазница,
	|	//ДляРеглУчета ЕСТЬNULL(УчетЗатрат.СтоимостьНУ, 0) КАК СтоимостьНУ,
	|
	|	//ДляРеглУчета ЕСТЬNULL(ТаблицаРешений.ПостояннаяРазница, 0) КАК ЦенаПР,
	|	//ДляРеглУчета ЕСТЬNULL(ТаблицаРешений.СтоимостьНУ, 0) КАК ЦенаНУ,
	|
	|	ВЫБОР КОГДА ЕСТЬNULL(УчетЗатрат.Количество, 0) = 0
	|	 И ОтборПоАналитикеВидовУчетаРазделМПЗ.Ссылка ЕСТЬ NULL
	|	ТОГДА
	|		ЕСТЬNULL(УчетЗатрат.Стоимость,0)
	|	ИНАЧЕ 
	|		ЕСТЬNULL(УчетЗатрат.Количество,0)
	|	КОНЕЦ КАК Количество,
	|
	|	ЕСТЬNULL(УчетЗатрат.Стоимость,0) КАК Стоимость,
	|	ЕСТЬNULL(ТаблицаРешений.Стоимость,0) КАК Цена
	|ИЗ
	|	УзлыКорректировкиСтоимостиСписания КАК УзлыКорректировкиСтоимостиСписания
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		ВТДвиженияУчетЗатрат КАК УчетЗатрат
	|	ПО 
	|		УзлыКорректировкиСтоимостиСписания.АналитикаВидаУчета 			  = УчетЗатрат.АналитикаВидаУчета
	|		И УзлыКорректировкиСтоимостиСписания.АналитикаУчетаЗатрат 		  = УчетЗатрат.АналитикаУчетаЗатрат
	|		И УзлыКорректировкиСтоимостиСписания.АналитикаУчетаПартий 		  = УчетЗатрат.АналитикаУчетаПартий
	|		И УзлыКорректировкиСтоимостиСписания.АналитикаРаспределенияЗатрат = УчетЗатрат.АналитикаРаспределенияЗатрат
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ 
	|		ТаблицаРешений КАК ТаблицаРешений
	|	ПО 
	|		ТаблицаРешений.НомерУзла = УзлыКорректировкиСтоимостиСписания.НомерУзла
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ 
	|		ОтборПоАналитикеВидовУчетаРазделМПЗ КАК ОтборПоАналитикеВидовУчетаРазделМПЗ
	|	ПО 
	|		ОтборПоАналитикеВидовУчетаРазделМПЗ.Ссылка = УзлыКорректировкиСтоимостиСписания.АналитикаВидаУчета
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		АналитикаВидовУчетаСФиксСтоимостьюСписания КАК АналитикаВидовУчетаСФиксСтоимостьюСписания
	|	ПО
	|		УзлыКорректировкиСтоимостиСписания.АналитикаВидаУчета = АналитикаВидовУчетаСФиксСтоимостьюСписания.Ссылка
	|ГДЕ
	|	АналитикаВидовУчетаСФиксСтоимостьюСписания.Ссылка ЕСТЬ NULL
	|
	|УПОРЯДОЧИТЬ ПО
	|	НомерУзла УБЫВ
	|;
	|////////////////////////////////////////////////////////////
	|
	|УНИЧТОЖИТЬ ВТДвиженияУчетЗатрат";*/
			//Запрос.УстановитьПараметр("Регистратор", 			   СтруктураПараметров.Ссылка);
			//Запрос.УстановитьПараметр("ДатаКон", 	 			   ДатаКон);
			//Запрос.УстановитьПараметр("ДатаНач", 	 			   ДатаНач);
			//Запрос.Текст = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(Запрос.Текст, ВидОтраженияВУчете);
			//Результат = Запрос.Выполнить();
			if(true/*НЕ Результат.Пустой()*/)
			{
				//НаборЗаписей = РегистрыНакопления[РегистрУчета].СоздатьНаборЗаписей();
				//НаборЗаписей.Отбор.Регистратор.Установить(СтруктураПараметров.Ссылка);
				//ВыборкаДетальныеЗаписи = Результат.Выбрать();
				//КоличествоЭлементовВНаборе = 0;
				//РазмерНабораПриЗаписиРегистровУчетаЗатрат = глЗначениеПеременной("РазмерНабораПриЗаписиРегистровУчетаЗатрат");
				while(true/*ВыборкаДетальныеЗаписи.Следующий()*/)
				{
					//КоличествоЭлементовВНаборе = КоличествоЭлементовВНаборе + 1;
					//СуммаПеремещения = ВыборкаДетальныеЗаписи.Цена * ВыборкаДетальныеЗаписи.Количество;
					if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВРегламентированномУчете*/)
					{
						//СуммаПеремещенияПР = ВыборкаДетальныеЗаписи.ЦенаПР * ВыборкаДетальныеЗаписи.КоличествоНУ;
						//СуммаПеремещенияНУ = ВыборкаДетальныеЗаписи.ЦенаНУ * ВыборкаДетальныеЗаписи.КоличествоНУ;
					}
					/*//Скорректируем стоимость списания
*/
					//СуммаКорректировки = СуммаПеремещения - ВыборкаДетальныеЗаписи.Стоимость;
					if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВРегламентированномУчете*/)
					{
						//СуммаКорректировкиПР = СуммаПеремещенияПР - ВыборкаДетальныеЗаписи.ПостояннаяРазница;
						//СуммаКорректировкиНУ = СуммаПеремещенияНУ - ВыборкаДетальныеЗаписи.СтоимостьНУ;
					}
					if(true/*Окр(СуммаКорректировки,2) <> 0
			 ИЛИ Окр(СуммаКорректировкиПР,2) <> 0
			 ИЛИ Окр(СуммаКорректировкиНУ,2) <> 0*/)
					{
						//СтруктраСтоимостей = Новый Структура("Стоимость,СтоимостьНУ,ПостояннаяРазница", СуммаКорректировки, СуммаКорректировкиНУ, СуммаКорректировкиПР);
						/*СформироватьДвиженияПоРегиструУчетаЗатрат(
					НаборЗаписей, 
					ДатаКон, 
					СтруктураПараметров.Ссылка, 
					ВыборкаДетальныеЗаписи.КодОперации, 
					ВыборкаДетальныеЗаписи, 
					СтруктраСтоимостей, 
					МассивКодовОперацийСписания, 
					ВидОтраженияВУчете);*/
					}
					/*// Если количество записей в наборе равно установленному размеру набора для записи - запишем набор
*/
					if(true/*КоличествоЭлементовВНаборе = РазмерНабораПриЗаписиРегистровУчетаЗатрат*/)
					{
						//НаборЗаписей.Записать(Ложь);
						//НаборЗаписей.Очистить();
						//КоличествоЭлементовВНаборе = 0;
					}
				}
				/*;	
		
		НаборЗаписей.Записать(Ложь);*/
			}
		}
		// Процедура выполняет дополнительные движения по аналитическим регистрам по результатам корректировки регистров УчетЗатрат.
		//
		// Параметры:
		//  СтруктураПараметров - структура, содержащая параметры проведения по регистрам
		//  Отказ -  булево, признак отказа от проведения.
		//

		public void СформироватьДвиженияПоРезультатамКорректировкиУпр(/*СтруктураПараметров, Отказ = Ложь*/)
		{
			//Запрос = Новый Запрос;
			/*Запрос.Текст =
	"ВЫБРАТЬ ПЕРВЫЕ 1000
	|	УчетЗатрат.АналитикаВидаУчета,
	|	УчетЗатрат.АналитикаУчетаЗатрат,
	|	УчетЗатрат.АналитикаУчетаПартий,
	|	УчетЗатрат.АналитикаРаспределенияЗатрат,
	|	УчетЗатрат.Количество,
	|	УчетЗатрат.Стоимость,
	|	УчетЗатрат.КодОперации,
	|
	|	УчетЗатрат.КорАналитикаВидаУчета,
	|	УчетЗатрат.КорАналитикаУчетаЗатрат,
	|	УчетЗатрат.КорАналитикаУчетаПартий,
	|	УчетЗатрат.КорАналитикаРаспределенияЗатрат,
	|	УчетЗатрат.НомерСтроки
	|ИЗ
	|	РегистрНакопления.УчетЗатрат КАК УчетЗатрат
	|ГДЕ
	|	УчетЗатрат.Регистратор = &Регистратор
	|	И УчетЗатрат.НомерСтроки > &НомерСтроки
	|	И УчетЗатрат.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
	|
	|УПОРЯДОЧИТЬ ПО
	|	УчетЗатрат.НомерСтроки";*/
			//Запрос.УстановитьПараметр("Регистратор", СтруктураПараметров.Ссылка);
			//Запрос.УстановитьПараметр("НомерСтроки", -1);
			//Результат = Запрос.Выполнить();
			//СтруктураКлючиАналитики = Новый Структура;
			//КоличествоСтрок = 1;
			while(true/*НЕ Результат.Пустой()*/)
			{
				//ТаблицаСписания = Результат.Выгрузить();
				//КоличествоСтрок = ТаблицаСписания[ТаблицаСписания.Количество()-1].НомерСтроки;
				/*УправлениеЗапасамиРасширеннаяАналитика.СформироватьДвиженияПоАналитическимРегистрам(
					ТаблицаСписания,
					СтруктураПараметров.Ссылка,
					Отказ,
					СтруктураПараметров.Дата,
					СтруктураКлючиАналитики,
					СтруктураПараметров.Движения,
					Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете);*/
				//Запрос.УстановитьПараметр("НомерСтроки", КоличествоСтрок);
				//Результат = Запрос.Выполнить();
			}
			//;;
		}
		//СформироватьДвиженияПоРезультатамКорректировкиУпр()
		// Процедура выполняет дополнительные движения по аналитическим регистрам и формирует проводки по результатам корректировки регистров УчетЗатратРегл.
		//
		// Параметры:
		//  СтруктураПараметров - структура, содержащая параметры проведения по регистрам
		//  Отказ -  булево, признак отказа от проведения.
		//

		public void СформироватьДвиженияПоРезультатамКорректировкиРегл(/*СтруктураПараметров, Отказ = Ложь*/)
		{
			//Запрос = Новый Запрос;
			//Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
			/*//Отбор по аналитике видов учета
*/
			/*"ВЫБРАТЬ
	|	РегистрАналитикаВидаУчета.Ссылка КАК Ссылка
	|ПОМЕСТИТЬ ТаблицаАналитикиВидаУчета
	|ИЗ
	|	РегистрСведений.АналитикаВидаУчета КАК РегистрАналитикаВидаУчета
	|ГДЕ
	|	РегистрАналитикаВидаУчета.РазделУчета <> ЗНАЧЕНИЕ(Перечисление.РазделыУчета.Выпуск)
	|	И РегистрАналитикаВидаУчета.РазделУчета <> ЗНАЧЕНИЕ(Перечисление.РазделыУчета.Наработка)
	|;
	|	
	|ВЫБРАТЬ
	|	РазделУчета
	|ПОМЕСТИТЬ ИсключаемыеРазделыУчета
	|ИЗ
	|	&ИсключаемыеРазделыУчета КАК ИсключаемыеРазделыУчета
	|;
	|	
	|ВЫБРАТЬ
	|	КодОперации
	|ПОМЕСТИТЬ ИсключаемыеКодыОпераций
	|ИЗ
	|	&ИсключаемыеКодыОпераций КАК ИсключаемыеКодыОпераций
	|";*/
			//Запрос.УстановитьПараметр("ИсключаемыеРазделыУчета", СформироватьТаблицуИсключаемыхРазделовУчета());
			//Запрос.УстановитьПараметр("ИсключаемыеКодыОпераций", СформироватьТаблицуИсключаемыхКодовОпераций());
			//Запрос.Выполнить();
			/*// Таблица движений сформированных документом расчет себестоимости для формирования проводок и движений по аналитическим регистрам
*/
			/*// Перечень колонок таблицы движений приведен в УправлениеЗапасамиРасширеннаяАналитика.ПодготовитьТаблицуДляФормированияДвижений()
*/
			/*Запрос.Текст =
	"ВЫБРАТЬ ПЕРВЫЕ 1000
	|	УчетЗатратРегл.АналитикаВидаУчета,
	|	УчетЗатратРегл.АналитикаУчетаЗатрат,
	|	УчетЗатратРегл.АналитикаУчетаПартий,
	|	УчетЗатратРегл.АналитикаРаспределенияЗатрат,
	|
	|	УчетЗатратРегл.Количество,
	|	УчетЗатратРегл.КоличествоНУ,
	|	УчетЗатратРегл.Количество КАК КоличествоПолучатель,
	|	УчетЗатратРегл.КоличествоНУ КАК КоличествоНУПолучатель,
	|	УчетЗатратРегл.Стоимость,
	|	УчетЗатратРегл.Стоимость КАК СтоимостьПолучатель,
	|	УчетЗатратРегл.СтоимостьНУ,
	|	УчетЗатратРегл.СтоимостьНУ КАК СтоимостьНУПолучатель,
	|	УчетЗатратРегл.ПостояннаяРазница,
	|	УчетЗатратРегл.ПостояннаяРазница КАК ПостояннаяРазницаПолучатель,
	|
	|	УчетЗатратРегл.КодОперации,
	|	УчетЗатратРегл.КорАналитикаВидаУчета,
	|	УчетЗатратРегл.КорАналитикаУчетаЗатрат,
	|	УчетЗатратРегл.КорАналитикаУчетаПартий,
	|	УчетЗатратРегл.КорАналитикаРаспределенияЗатрат,
	|	УчетЗатратРегл.НомерСтроки КАК НомерСтрокиВРегистре,
	|
	|	РегАналитикаВидаУчета.РазделУчета,
	|	РегАналитикаВидаУчета.Организация,
	|	РегАналитикаВидаУчета.ПодразделениеОрганизации,
	|	РегАналитикаВидаУчета.Подразделение,
	|	РегАналитикаВидаУчета.СчетУчета,
	|	РегАналитикаВидаУчета.СчетУчетаНУ,
	|	РегАналитикаВидаУчета.Проект,
	|	РегАналитикаВидаУчета.Склад,
	|
	|	РегАналитикаРаспределенияЗатрат.НоменклатурнаяГруппа,
	|	РегАналитикаРаспределенияЗатрат.Продукция,
	|	РегАналитикаРаспределенияЗатрат.ХарактеристикаПродукции,
	|	РегАналитикаРаспределенияЗатрат.СерияПродукции,
	|	РегАналитикаРаспределенияЗатрат.Спецификация,
	|
	|	РегАналитикаУчетаЗатрат.СтатьяЗатрат,
	|	РегАналитикаУчетаЗатрат.Затрата,
	|	РегАналитикаУчетаЗатрат.ХарактеристикаЗатраты,
	|	РегАналитикаУчетаЗатрат.СерияЗатраты,
	|	РегАналитикаУчетаЗатрат.СпособРаспределенияЗатрат,
	|	РегАналитикаУчетаЗатрат.ХарактерЗатрат,
	|	РегАналитикаУчетаЗатрат.Качество,
	|	РегАналитикаУчетаПартий.СтатусПартии,
	|	РегАналитикаУчетаПартий.Заказ,
	|	РегАналитикаУчетаПартий.ДоговорКомитента,
	|	РегАналитикаУчетаПартий.ДоговорКомиссионера,
	|	РегАналитикаУчетаПартий.Комиссионер,
	|
	|	КорРегАналитикаВидаУчета.РазделУчета КАК КорРазделУчета,
	|	КорРегАналитикаВидаУчета.Организация КАК КорОрганизация,
	|	КорРегАналитикаВидаУчета.ПодразделениеОрганизации КАК КорПодразделениеОрганизации,
	|	КорРегАналитикаВидаУчета.Подразделение КАК КорПодразделение,
	|	ЕСТЬNULL(КорРегАналитикаВидаУчета.СчетУчета,КорРегАналитикаУчетаПрочихЗатрат.СчетУчета) КАК КорСчетУчета,
	|	ЕСТЬNULL(КорРегАналитикаВидаУчета.СчетУчетаНУ,КорРегАналитикаУчетаПрочихЗатрат.СчетУчетаНУ) КАК КорСчетУчетаНУ,
	|	КорРегАналитикаВидаУчета.Проект КАК КорПроект,
	|	КорРегАналитикаВидаУчета.Склад КАК КорСклад,
	|	КорРегАналитикаВидаУчета.Склад КАК СкладПолучатель,
	|
	|	КорРегАналитикаУчетаПрочихЗатрат.ОбъектСтроительства КАК КорОбъектСтроительства,
	|	КорРегАналитикаУчетаПрочихЗатрат.СпособСтроительства КАК КорСпособСтроительства,
	|	КорРегАналитикаУчетаПрочихЗатрат.Субконто1 КАК КорСубконто1,
	|	КорРегАналитикаУчетаПрочихЗатрат.Субконто2 КАК КорСубконто2,
	|	КорРегАналитикаУчетаПрочихЗатрат.Субконто3 КАК КорСубконто3,
	|	КорРегАналитикаУчетаПрочихЗатрат.СубконтоНУ1 КАК КорСубконтоНУ1,
	|	КорРегАналитикаУчетаПрочихЗатрат.СубконтоНУ2 КАК КорСубконтоНУ2,
	|	КорРегАналитикаУчетаПрочихЗатрат.СубконтоНУ3 КАК КорСубконтоНУ3,
	|	КорРегАналитикаУчетаПрочихЗатрат.ДатаИсправительнойЗаписи КАК ДатаИсправительнойЗаписи,
	|	КорРегАналитикаУчетаПрочихЗатрат.СчитатьРазницыПостоянными КАК СчитатьРазницыПостоянными,
	|
	|	КорРегАналитикаРаспределенияЗатрат.НоменклатурнаяГруппа КАК КорНоменклатурнаяГруппа,
	|	КорРегАналитикаРаспределенияЗатрат.Продукция КАК КорПродукция,
	|	КорРегАналитикаРаспределенияЗатрат.ХарактеристикаПродукции КАК КорХарактеристикаПродукции,
	|	КорРегАналитикаРаспределенияЗатрат.СерияПродукции КАК КорСерияПродукции,
	|	КорРегАналитикаРаспределенияЗатрат.Спецификация КАК КорСпецификация,
	|
	|	КорРегАналитикаУчетаЗатрат.СтатьяЗатрат КАК КорСтатьяЗатрат,
	|	КорРегАналитикаУчетаЗатрат.Затрата КАК КорЗатрата,
	|	КорРегАналитикаУчетаЗатрат.ХарактеристикаЗатраты КАК КорХарактеристикаЗатраты,
	|	КорРегАналитикаУчетаЗатрат.СерияЗатраты КАК КорСерияЗатраты,
	|	КорРегАналитикаУчетаЗатрат.СпособРаспределенияЗатрат КАК КорСпособРаспределенияЗатрат,
	|	КорРегАналитикаУчетаЗатрат.ХарактерЗатрат КАК КорХарактерЗатрат,
	|	КорРегАналитикаУчетаЗатрат.Качество КАК КорКачество,
	|
	|	КорРегАналитикаУчетаПартий.СтатусПартии КАК КорСтатусПартии,
	|	КорРегАналитикаУчетаПартий.Заказ КАК КорЗаказ,
	|	КорРегАналитикаУчетаПартий.ДоговорКомитента КАК КорДоговорКомитента,
	|	КорРегАналитикаУчетаПартий.ДоговорКомиссионера КАК КорДоговорКомиссионера,
	|	КорРегАналитикаУчетаПартий.Комиссионер КАК КорКомиссионер
	|ИЗ
	|	РегистрНакопления.УчетЗатратРегл КАК УчетЗатратРегл
	|
	|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ 
	|		ТаблицаАналитикиВидаУчета КАК ТаблицаАналитикиВидаУчета
	|	ПО 
	|		УчетЗатратРегл.АналитикаВидаУчета = ТаблицаАналитикиВидаУчета.Ссылка
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ 
	|		РегистрСведений.АналитикаВидаУчета КАК РегАналитикаВидаУчета
	|	ПО 
	|		УчетЗатратРегл.АналитикаВидаУчета = РегАналитикаВидаУчета.Ссылка
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ 
	|		РегистрСведений.АналитикаУчетаЗатрат КАК РегАналитикаУчетаЗатрат
	|	ПО 
	|		УчетЗатратРегл.АналитикаУчетаЗатрат = РегАналитикаУчетаЗатрат.Ссылка
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ 
	|		РегистрСведений.АналитикаУчетаПартий КАК РегАналитикаУчетаПартий
	|	ПО 
	|		УчетЗатратРегл.АналитикаУчетаПартий = РегАналитикаУчетаПартий.Ссылка
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ 
	|		РегистрСведений.АналитикаРаспределенияЗатрат КАК РегАналитикаРаспределенияЗатрат
	|	ПО 
	|		УчетЗатратРегл.АналитикаРаспределенияЗатрат = РегАналитикаРаспределенияЗатрат.Ссылка
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ 
	|		РегистрСведений.АналитикаВидаУчета КАК КорРегАналитикаВидаУчета
	|	ПО 
	|		УчетЗатратРегл.КорАналитикаВидаУчета = КорРегАналитикаВидаУчета.Ссылка
	|		И УчетЗатратРегл.КорАналитикаВидаУчета ССЫЛКА Справочник.КлючиАналитикиВидаУчета
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ 
	|		РегистрСведений.АналитикаУчетаПрочихЗатрат КАК КорРегАналитикаУчетаПрочихЗатрат
	|	ПО 
	|		УчетЗатратРегл.КорАналитикаВидаУчета = КорРегАналитикаУчетаПрочихЗатрат.Ссылка
	|		И УчетЗатратРегл.КорАналитикаВидаУчета ССЫЛКА Справочник.КлючиАналитикиУчетаПрочихЗатрат
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ 
	|		РегистрСведений.АналитикаУчетаЗатрат КАК КорРегАналитикаУчетаЗатрат
	|	ПО 
	|		УчетЗатратРегл.КорАналитикаУчетаЗатрат = КорРегАналитикаУчетаЗатрат.Ссылка
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ 
	|		РегистрСведений.АналитикаУчетаПартий КАК КорРегАналитикаУчетаПартий
	|	ПО 
	|		УчетЗатратРегл.КорАналитикаУчетаПартий = КорРегАналитикаУчетаПартий.Ссылка
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ 
	|		РегистрСведений.АналитикаРаспределенияЗатрат КАК КорРегАналитикаРаспределенияЗатрат
	|	ПО 
	|		УчетЗатратРегл.КорАналитикаРаспределенияЗатрат = КорРегАналитикаРаспределенияЗатрат.Ссылка
	|	
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		ИсключаемыеКодыОпераций КАК ИсключаемыеКодыОпераций
	|	ПО
	|		УчетЗатратРегл.КодОперации = ИсключаемыеКодыОпераций.КодОперации
	|	
	|ГДЕ
	|	УчетЗатратРегл.Регистратор = &Регистратор
	|	И УчетЗатратРегл.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
	|	И УчетЗатратРегл.НомерСтроки >= &НомерСтроки
	|	И ИсключаемыеКодыОпераций.КодОперации ЕСТЬ NULL
	|	И (КорРегАналитикаВидаУчета.РазделУчета ЕСТЬ NULL
	|		ИЛИ (НЕ КорРегАналитикаВидаУчета.РазделУчета В (ВЫБРАТЬ РазделУчета ИЗ ИсключаемыеРазделыУчета)))
	|
	|УПОРЯДОЧИТЬ ПО
	|	НомерСтрокиВРегистре";*/
			//Запрос.УстановитьПараметр("Регистратор", СтруктураПараметров.Ссылка);
			//Запрос.УстановитьПараметр("НомерСтроки", 1);
			//Результат = Запрос.Выполнить();
			while(true/*НЕ Результат.Пустой()*/)
			{
				//ТаблицаСписания = Результат.Выгрузить();
				//КоличествоСтрок = ТаблицаСписания[ТаблицаСписания.Количество()-1].НомерСтрокиВРегистре+1;
				//ТаблицаОтклоненийВСтоимостиТары    = ИнициализироватьТаблицуОтклоненийВСтоимостиТары();
				//ТаблицаОтклоненийВСтоимостиТоваров = ИнициализироватьТаблицуОтклоненийВСтоимостиТоваров();
				//СчетчикЦикла = 0;
				while(true/*СчетчикЦикла < ТаблицаСписания.Количество()*/)
				{
					//ТекущаяСтрока = ТаблицаСписания.Получить(СчетчикЦикла);
					if(true/*ТекущаяСтрока.КодОперации = Перечисления.КодыОперацийПартииТоваров.ПередачаТарыКонтрагенту*/)
					{
						//НоваяСтрока = ТаблицаОтклоненийВСтоимостиТары.Добавить();
						//ЗаполнитьЗначенияСвойств(НоваяСтрока,ТекущаяСтрока);
						//ТаблицаСписания.Удалить(СчетчикЦикла);
					}
				}
				/*;	
		
		УправлениеЗапасамиРасширеннаяАналитика.СформироватьДвиженияПоАналитическимРегистрам(
			ТаблицаСписания,
			СтруктураПараметров.Ссылка,
			Отказ,
			СтруктураПараметров.Дата,
			СтруктураПараметров.СтруктураКлючиАналитики,
			СтруктураПараметров.Движения,
			Перечисления.ВидыОтраженияВУчете.ОтражатьВБухгалтерскомУчете);*/
				/*УправлениеЗапасамиРасширеннаяАналитика.СформироватьДвиженияПоАналитическимРегистрам(
			ТаблицаСписания,
			СтруктураПараметров.Ссылка,
			Отказ,
			СтруктураПараметров.Дата,
			СтруктураПараметров.СтруктураКлючиАналитики,
			СтруктураПараметров.Движения,
			Перечисления.ВидыОтраженияВУчете.ОтражатьВНалоговомУчете);*/
				/*// ТаблицаОприходования
*/
				/*Отказ,
			СтруктураПараметров.СтруктураКлючиАналитики,
			Истина);*/
				if(true/*ТаблицаОтклоненийВСтоимостиТары.Количество() > 0*/)
				{
					//СформироватьПроводкиПоОтклонениюВСтоимостиТары(СтруктураПараметров, ТаблицаОтклоненийВСтоимостиТары);
				}
				if(true/*ТаблицаОтклоненийВСтоимостиТоваров.Количество() > 0*/)
				{
					//СформироватьПроводкиПоОтклонениюВСтоимостиТоваров(СтруктураПараметров, ТаблицаОтклоненийВСтоимостиТоваров);
				}
				//Запрос.УстановитьПараметр("НомерСтроки", КоличествоСтрок);
				//Результат = Запрос.Выполнить();
			}
		}
		//СформироватьДвиженияПоРезультатамКорректировкиРегл()
		// Процедура формирует проводки по отклонению в стоимости товаров при возврате поставщику
		//
		// Параметры:
		//	СтруктураПараметров			- структура параметров, содержит некоторые реквизиты шапки и наборы записей для формирования движений по регистрам,
		//	ТаблицаОтклоненийВСтоимости	- таблица значений, содержит таблицу для формирования отклонений.
		//

		public void СформироватьПроводкиПоОтклонениюВСтоимостиТоваров(/*СтруктураПараметров, ТаблицаОтклоненийВСтоимости*/)
		{
			/*ТаблицаОтклоненийВСтоимости.Свернуть(
		"АналитикаВидаУчета, АналитикаУчетаПартий, АналитикаУчетаЗатрат, АналитикаРаспределенияЗатрат, КодОперации, КорАналитикаВидаУчета, КорАналитикаУчетаПартий, КорАналитикаУчетаЗатрат, КорАналитикаРаспределенияЗатрат",
		"Стоимость, ПостояннаяРазница, Количество, КоличествоНУ");*/
			/*//Получим структуру счетов отражения 
*/
			//КэшПоИерархииСчетов = Новый Структура;
			/*//Формирование аналитики дебета
*/
			//СтруктураАналитики = Новый Структура;
			//СтруктураАналитики.Вставить("ДоговорКомиссионера", 	"КорДоговорКомиссионера");
			//СтруктураАналитики.Вставить("Комиссионер", 			"КорКомиссионер");
			//СтруктураАналитики.Вставить("СчетУчета",			"КорСчетУчета");
			//СтруктураАналитики.Вставить("СчетУчетаНУ",			"КорСчетУчетаНУ");
			//Отказ = Ложь;
			/*УправлениеЗапасамиРасширеннаяАналитика.ЗаполнитьТаблицуДвиженийПоЗатратамАналитикой(
		ТаблицаОтклоненийВСтоимости,
		СтруктураАналитики,
		Отказ,
		СтруктураПараметров.СтруктураКлючиАналитики,
		Истина);*/
			if(true/*Отказ*/)
			{
			}
			/*//Формирование аналитики кредита
*/
			//СтруктураАналитики = Новый Структура;
			//СтруктураАналитики.Вставить("Склад", 		"Склад");
			//СтруктураАналитики.Вставить("Затрата", 		"Затрата");
			//СтруктураАналитики.Вставить("СчетУчета",	"СчетУчета");
			//СтруктураАналитики.Вставить("СчетУчетаНУ",	"СчетУчетаНУ");
			//Отказ = Ложь;
			/*УправлениеЗапасамиРасширеннаяАналитика.ЗаполнитьТаблицуДвиженийПоЗатратамАналитикой(
		ТаблицаОтклоненийВСтоимости,
		СтруктураАналитики,
		Отказ,
		СтруктураПараметров.СтруктураКлючиАналитики,
		Ложь);*/
			if(true/*Отказ*/)
			{
			}
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("СтатьяПрочихДоходовРасходовПоТаре");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("Организация");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("КорЗатрата");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("СкладПолучатель");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("КорСубконто1");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("КорСубконто2");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("КорСубконто3");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("КорСубконтоНУ1");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("КорСубконтоНУ2");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("КорСубконтоНУ3");
		}
		// Процедура формирует проводки по отклонению в стоимости тары при возврате поставщику
		//
		// Параметры:
		//	СтруктураПараметров			- структура параметров, содержит некоторые реквизиты шапки и наборы записей для формирования движений по регистрам,
		//	ТаблицаОтклоненийВСтоимости	- таблица значений, содержит таблицу для формирования отклонений.
		//

		public void СформироватьПроводкиПоОтклонениюВСтоимостиТары(/*СтруктураПараметров, ТаблицаОтклоненийВСтоимости*/)
		{
			/*ТаблицаОтклоненийВСтоимости.Свернуть(
		"АналитикаВидаУчета, АналитикаУчетаПартий, АналитикаУчетаЗатрат, АналитикаРаспределенияЗатрат, КодОперации",
		"Стоимость, ПостояннаяРазница, Количество, КоличествоНУ");*/
			/*//Получим структуру счетов отражения 
*/
			//КэшПоИерархииСчетов = Новый Структура;
			//СтруктураАналитики  = Новый Структура;
			//СтруктураАналитики.Вставить("Организация", 			"Организация");
			//СтруктураАналитики.Вставить("ДоговорКомиссионера", 	"КорДоговорКомиссионера");
			//СтруктураАналитики.Вставить("Комиссионер", 			"КорКомиссионер");
			//СтруктураАналитики.Вставить("Склад", 				"Склад");
			//СтруктураАналитики.Вставить("Затрата", 				"Затрата");
			//СтруктураАналитики.Вставить("СчетУчета",			"СчетУчета");
			//СтруктураАналитики.Вставить("СчетУчетаНУ",			"СчетУчетаНУ");
			//Отказ = Ложь;
			/*УправлениеЗапасамиРасширеннаяАналитика.ЗаполнитьТаблицуДвиженийПоЗатратамАналитикой(
		ТаблицаОтклоненийВСтоимости,
		СтруктураАналитики,
		Отказ,
		СтруктураПараметров.СтруктураКлючиАналитики);*/
			if(true/*Отказ*/)
			{
			}
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("КорСчетУчета");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("КорСчетУчетаНУ");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("КорЗатрата");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("СтатьяПрочихДоходовРасходовПоТаре");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("НоменклатураНовая");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("СкладПолучатель");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("КорСубконто1");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("КорСубконто2");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("КорСубконто3");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("КорСубконтоНУ1");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("КорСубконтоНУ2");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("КорСубконтоНУ3");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("НоменклатурнаяГруппа");
			//ТаблицаОтклоненийВСтоимости.Колонки.Добавить("КорНоменклатурнаяГруппа");
		}
		// Процедура сохраняет результаты расчета себестоимости в регистре, чтобы использовать их как первое приближение при перепроведении документа
		//

		public void ЗаписатьПолученноеРешение(/*СтруктураПараметров, ВидОтраженияВУчете, МенеджерВременныхТаблиц, ОперацияРасчетаСебестоимостиВыпуска*/)
		{
			if(true/*ОперацияРасчетаСебестоимостиВыпуска = Неопределено*/)
			{
			}
			//РегламентныйДокумент = СтруктураПараметров.Ссылка;
			//Запрос = Новый Запрос;
			//Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
			/*Запрос.Текст =
	"ВЫБРАТЬ
	|	УзлыКорректировкиСтоимостиСписания.АналитикаВидаУчета,
	|	УзлыКорректировкиСтоимостиСписания.АналитикаУчетаЗатрат,
	|	УзлыКорректировкиСтоимостиСписания.АналитикаУчетаПартий,
	|	УзлыКорректировкиСтоимостиСписания.АналитикаРаспределенияЗатрат,
	|	//ДляРеглУчета ЕСТЬNULL(ТаблицаРешений.ПостояннаяРазница, 0) КАК ПостояннаяРазница,
	|	//ДляРеглУчета ЕСТЬNULL(ТаблицаРешений.СтоимостьНУ, 0) КАК СтоимостьНУ,
	|	ЕСТЬNULL(ТаблицаРешений.Стоимость,0) КАК Стоимость
	|ИЗ
	|	УзлыКорректировкиСтоимостиСписания КАК УзлыКорректировкиСтоимостиСписания
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ 
	|		ТаблицаРешений КАК ТаблицаРешений
	|	ПО 
	|		ТаблицаРешений.НомерУзла = УзлыКорректировкиСтоимостиСписания.НомерУзла";*/
			//Запрос.УстановитьПараметр("Регистратор", РегламентныйДокумент);
			//Запрос.Текст = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(Запрос.Текст, ВидОтраженияВУчете);
			//Результат = Запрос.Выполнить();
			if(true/*НЕ Результат.Пустой()*/)
			{
				//НаборЗаписей = РегистрыСведений.ПервоеПриближениеДляРешенияСЛУ.СоздатьНаборЗаписей();
				//НаборЗаписей.Отбор.ДокументРасчетаСебестоимости.Установить(РегламентныйДокумент);
				//НаборЗаписей.Отбор.ОперацияРасчетаСебестоимостиВыпуска.Установить(ОперацияРасчетаСебестоимостиВыпуска);
				//НаборЗаписей.Записать(Истина);
				//КоличествоЭлементовВНаборе = 0;
				//Выборка = Результат.Выбрать();
				while(true/*Выборка.Следующий()*/)
				{
					//КоличествоЭлементовВНаборе = КоличествоЭлементовВНаборе + 1;
					//НовыйУзел = НаборЗаписей.Добавить();
					//НовыйУзел.ДокументРасчетаСебестоимости 		  = РегламентныйДокумент;
					//НовыйУзел.ОперацияРасчетаСебестоимостиВыпуска = ОперацияРасчетаСебестоимостиВыпуска;
					//ЗаполнитьЗначенияСвойств(НовыйУзел,Выборка);
					if(true/*КоличествоЭлементовВНаборе = 1000*/)
					{
						//НаборЗаписей.Записать(Ложь);
						//НаборЗаписей.Очистить();
						//КоличествоЭлементовВНаборе = 0;
					}
				}
				/*;	
		
	    НаборЗаписей.Записать(Ложь);*/
			}
		}
		// Сторнирует предварительную оценку затрат, записанную ранее в регистр
		// процедурой СформироватьВременнуюТаблицуЗатратыБезОценки
		// модуля ПроцедурыРасчетаСебестоимостиРасширеннаяАналитика
		//
		// Параметры:
		//  Регистратор - регистратор для записи в регистр
		//  Период      - период, с которым будут записаны данные в регистр
		//  ИмяРегистра - имя регистра: "УчетЗатрат" или "УчетЗатратРегл"
		//  МенеджерВременныхТаблиц
		//              - менеджер, содержащий таблицу ЗатратыБезОценки

		public void СторноПредварительнойОценкиЗатрат(/*Регистратор, Период, ИмяРегистра, МенеджерВременныхТаблиц*/)
		{
			if(true/*МенеджерВременныхТаблиц = Неопределено*/)
			{
				/*// предварительная оценка не выполнялась
*/
			}
			/*// Уберем предварительную оценку затрат, записанную ранее в регистр
*/
			//Запрос = Новый Запрос;
			//Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
			/*Запрос.Текст =
	"ВЫБРАТЬ
	|	ЗатратыБезОценки.АналитикаВидаУчета,
	|	ЗатратыБезОценки.АналитикаУчетаЗатрат,
	|	ЗатратыБезОценки.АналитикаУчетаПартий,
	|	ЗатратыБезОценки.АналитикаРаспределенияЗатрат,
	|	-ЗатратыБезОценки.Количество КАК Количество,
	|	-ЗатратыБезОценки.КоличествоНУ КАК КоличествоНУ,
	|	-ЗатратыБезОценки.Стоимость КАК Стоимость,
	|	-ЗатратыБезОценки.СтоимостьНУ КАК СтоимостьНУ,
	|	-ЗатратыБезОценки.ПостояннаяРазница КАК ПостояннаяРазница,
	|	ЗатратыБезОценки.КодОперации
	|ИЗ
	|	ЗатратыБезОценки КАК ЗатратыБезОценки";*/
			//Выборка = Запрос.Выполнить().Выбрать();
			/*// Код выполняется при вызове из документа Расчет себестоимости,
*/
			/*// в этом случае в МассивРегистровУчета будет только один элемент
*/
			//НаборЗаписей = РегистрыНакопления[ИмяРегистра].СоздатьНаборЗаписей();
			//НаборЗаписей.Отбор.Регистратор.Установить(Регистратор);
			while(true/*Выборка.Следующий()*/)
			{
				//НоваяСтрока = НаборЗаписей.ДобавитьПриход();
				//НоваяСтрока.Период = Период;
				//ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);
			}
			if(true/*НаборЗаписей.Модифицированность()*/)
			{
				//НаборЗаписей.Записать(Ложь);
			}
		}
		//СторноПредварительнойОценкиЗатрат
	}
}
